Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * obtiene los videos de la página @toro 2020
- * https://tar.mx/archivo/2020/obtener-videos-de-una-pagina-con-facebook-api.html
- */
- require_once(__DIR__."./vendor/autoload.php"); //con el framework PHP de facebook instalado
- // datos de la app que va a consultar
- $configfb = [
- 'app_id' => 'APP_ID',
- 'app_secret' => 'APP_SECRET',
- 'default_graph_version' => 'v2.11',
- ];
- $sql = new MySQLi("HOST","USER","PASS","DB"); // para almacenar
- $fb = new \Facebook\Facebook($configfb);
- $paginaID = "PAGINA_ID_FACEBOOK"; //la página con la cual tenemos acceso
- $token = "TOKEN_PAGINA";
- try {
- $response = $fb->get( '/'.$paginaID.'/videos', $token);
- $postBody = $response->getDecodedBody();
- $data = $postBody["data"];
- } catch(Facebook\Exceptions\FacebookResponseException $e) {
- echo 'Graph returned an error: ' . $e->getMessage()."\n";
- } catch(Facebook\Exceptions\FacebookSDKException $e) {
- echo 'Facebook SDK returned an error: ' . $e->getMessage();
- }
- //tenemos una tabla llamada cvideo con id,fecha,descripcion, thumb
- if(!empty($data)) {
- foreach($data AS $k) {
- $q = "SELECT * FROM cvideo WHERE id = '".$k['id']."'";
- $e = $sql->Query($q);
- if($e->num_rows<1) {
- @$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']));
- $sql->Query($q);
- } else {
- @$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']));
- $sql->Query($q);
- }
- if(!empty($sql->error)) echo "SQL ERROR: ".$sql->error."\n";
- }
- }
- //obtenemos los thumbnails
- $q = "SELECT * FROM cvideo WHERE thumb='0' ORDER BY fecha dESC LIMIT 3";
- $res=$sql->Query($q);
- while($vid = $res->fetch_object()) {
- $data=null;
- try {
- $response = $fb->get( '/'.$paginaID.'/thumbnails', $token);
- $postBody = $response->getDecodedBody();
- $data= $postBody["data"];
- } catch(Facebook\Exceptions\FacebookResponseException $e) {
- echo 'Graph returned an error: ' . $e->getMessage()."\n";
- } catch(Facebook\Exceptions\FacebookSDKException $e) {
- echo 'Facebook SDK returned an error: ' . $e->getMessage();
- }
- if(empty($data)) continue;
- $thumb = null;
- //imagen preferida?
- foreach($data AS $v) { if($v['is_preferred'] == 1) $thumb = $v['uri']; }
- if(empty($thumb)) $thumb = $data[0]['uri'];
- // descargamos el thumbnail localmente
- if(!empty($thumb)) {
- $path= __DIR__."fbv/".date('Y/m/',strtotime($vid->anadido));
- if(!is_dir($path)) { mkdir($path,0755,true); }
- $file = $path.$vid->id.".jpg";
- $filet= $path.$vid->id."_t.jpg";
- // descargamos archivo, almacenamos
- $ch=curl_init();
- curl_setopt($ch,CURLOPT_URL,$thumb);
- curl_setopt($ch,CURLOPT_HEADER,0);
- curl_setopt($ch,CURLOPT_BINARYTRANSFER, 1);
- curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
- $datab=curl_exec($ch);
- curl_close($ch);
- file_put_contents($file,$datab); //almacenamiento
- //crear thumbnail del thumbnail
- if(is_file($file)) {
- $cmd = "convert -thumbnail 300 $file $filet"; $cmd = `$cmd`;
- $sql->Query("UPDATE cvideo SET thumb='1' WHERE id = '".$vid->id."'");
- }
- }
- }
Add Comment
Please, Sign In to add comment