toritoesinocente

Untitled

May 6th, 2020
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.57 KB | None | 0 0
  1. <?php
  2.    /*
  3.    * obtiene los videos de la página @toro 2020
  4.    * https://tar.mx/archivo/2020/obtener-videos-de-una-pagina-con-facebook-api.html
  5.    */
  6.    require_once(__DIR__."./vendor/autoload.php");  //con el framework PHP de facebook instalado
  7.    // datos de la app que va a consultar
  8.    $configfb = [
  9.    'app_id' => 'APP_ID',
  10.    'app_secret' => 'APP_SECRET',
  11.    'default_graph_version' => 'v2.11',
  12.    ];
  13.    $sql = new MySQLi("HOST","USER","PASS","DB"); // para almacenar
  14.    $fb = new \Facebook\Facebook($configfb);
  15.    $paginaID = "PAGINA_ID_FACEBOOK";    //la página con la cual tenemos acceso
  16.    $token    = "TOKEN_PAGINA";
  17.    try {
  18.       $response = $fb->get( '/'.$paginaID.'/videos', $token);
  19.       $postBody = $response->getDecodedBody();
  20.       $data = $postBody["data"];
  21.    }  catch(Facebook\Exceptions\FacebookResponseException $e) {
  22.       echo 'Graph returned an error: ' . $e->getMessage()."\n";
  23.    } catch(Facebook\Exceptions\FacebookSDKException $e) {
  24.       echo 'Facebook SDK returned an error: ' . $e->getMessage();
  25.    }
  26.    //tenemos una tabla llamada cvideo con id,fecha,descripcion, thumb
  27.    if(!empty($data)) {
  28.       foreach($data AS $k) {
  29.          $q = "SELECT * FROM cvideo WHERE id = '".$k['id']."'";
  30.          $e = $sql->Query($q);
  31.          if($e->num_rows<1) {
  32.             @$q = sprintf("INSERT INTO cvideo (id, fecha, descripcion) values ('%s','%s','%s')", __($k['id']), date('Y-m-d H:i:s',strtotime($k['updated_time'])), __($k['description']));
  33.             $sql->Query($q);
  34.          } else {
  35.             @$q = sprintf("UPDATE cvideo  SET fecha='%s', descripcion='%s' WHERE id = '%s'", date('Y-m-d H:i:s',strtotime($k['updated_time'])),  __($k['description']), __($k['id']));
  36.             $sql->Query($q);
  37.          }
  38.          if(!empty($sql->error)) echo "SQL ERROR: ".$sql->error."\n";
  39.       }
  40.    }
  41.    //obtenemos los thumbnails
  42.    $q = "SELECT * FROM cvideo WHERE thumb='0' ORDER BY fecha dESC LIMIT 3";
  43.    $res=$sql->Query($q);
  44.    while($vid = $res->fetch_object()) {
  45.       $data=null;
  46.       try {
  47.          $response = $fb->get( '/'.$paginaID.'/thumbnails', $token);
  48.          $postBody = $response->getDecodedBody();
  49.          $data= $postBody["data"];
  50.       }  catch(Facebook\Exceptions\FacebookResponseException $e) {
  51.          echo 'Graph returned an error: ' . $e->getMessage()."\n";
  52.       } catch(Facebook\Exceptions\FacebookSDKException $e) {
  53.          echo 'Facebook SDK returned an error: ' . $e->getMessage();
  54.       }
  55.       if(empty($data)) continue;
  56.       $thumb = null;
  57.       //imagen preferida?
  58.       foreach($data AS $v) { if($v['is_preferred'] == 1) $thumb = $v['uri']; }
  59.       if(empty($thumb)) $thumb = $data[0]['uri'];
  60.       // descargamos el thumbnail localmente
  61.       if(!empty($thumb)) {
  62.          $path= __DIR__."fbv/".date('Y/m/',strtotime($vid->anadido));
  63.          if(!is_dir($path)) { mkdir($path,0755,true); }
  64.          $file = $path.$vid->id.".jpg";
  65.          $filet= $path.$vid->id."_t.jpg";
  66.          // descargamos archivo, almacenamos
  67.          $ch=curl_init();
  68.          curl_setopt($ch,CURLOPT_URL,$thumb);
  69.          curl_setopt($ch,CURLOPT_HEADER,0);
  70.          curl_setopt($ch,CURLOPT_BINARYTRANSFER, 1);
  71.          curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
  72.          $datab=curl_exec($ch);
  73.          curl_close($ch);
  74.          file_put_contents($file,$datab); //almacenamiento
  75.          //crear thumbnail del thumbnail
  76.          if(is_file($file)) {
  77.             $cmd = "convert -thumbnail 300 $file $filet"; $cmd = `$cmd`;
  78.             $sql->Query("UPDATE cvideo SET thumb='1' WHERE id = '".$vid->id."'");
  79.          }
  80.       }
  81.    }
Add Comment
Please, Sign In to add comment