2011-08-09 15 views
12

私は以下のコード使用してFacebookのビデオを埋め込むしようとしています:それは正常に動作していますが、ビデオIDからのビデオのサムネイルを表示する任意の同様の方法があるFacebookの動画サムネイルを動画IDから取得するにはどうすればよいですか?

<object width="400" height="224" > 
<param name="allowfullscreen" value="true" /> 
<param name="allowscriptaccess" value="always" /> 
<param name="movie" value="http://www.facebook.com/v/115316011865684" /> 
<embed src="http://www.facebook.com/v/115316011865684" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="224"> 
</embed> 
</object> 

を?
たとえば、http://www.facebook.com/thumbnail/115316011865684 などですか?

答えて

22

このグラフAPIのURL( https://graph.facebook.com/VIDEO_ID/picture)に移動すると、動画IDからサムネイル画像を取得できます。 https://graph.facebook.com/115316011865684/picture

+1

ありがとう、それは私を助けた:)...私はこのようにビデオタイトルを得ることができますか? –

+1

ビデオタイトルを取得するには、https://graph.facebook.com/VIDEO_IDを呼び出し、返された「名前」フィールドを探します。 「画像」フィールドもこの呼び出しとともに返され、サムネイルに対応します。詳細については、https://developers.facebook.com/docs/reference/api/video/ –

+0

を参照してください。それはかなり小さい画像でした。私はyoutubeのようなより大きなサムネイル画像を取得できますか? – TomSawyer

6

https://graph.facebook.com/VIDEO_IDは、より大きなサムネイルを含むより多くの情報を提供します。 (あなたは https://developers.facebook.com/docs/graph-api/reference/videoで利用できる情報のリストを取得することができます。)

はここで最大のサムネイルを掘るためにいくつかのPHPコードです:

$data = file_get_contents("https://graph.facebook.com/$video_id?fields=format"); 
if ($data !== FALSE) 
{ 
$result=json_decode($data); 
$count=count($result->format)-1; 
$thumbnail=$result->format[$count]->picture; 
} 

を更新:は、上記のFacebook以降に更新されたコードを変更しますここでは7月10日、2017年の彼らのAPIは、Facebookの場合は、ビデオのための大きなサムネイルを取得するためのいくつかの追加のPHPコードで再び物事を変更します。

$data = file_get_contents("https://graph.facebook.com/$video_id/thumbnails?access_token=$facebook_access_token"); 
if ($data !== FALSE) 
{ 
$result=json_decode($data); 
$thumbnail=$result->data[0]->uri; 
} 

この第2の解決策は必要Facebookのアクセストークン。ここではFacebookのアクセストークンを取得する方法についていくつかの命令です:https://smashballoon.com/custom-facebook-feed/access-token/

+2

これはページでのみ動作し、ユーザーでは動作しないようです。しかし、それはページのために素晴らしい作品です。ユーザーのために、彼らは認証し、私が言うことができるものから許可を与えなければなりません。 – Jake

+0

@jakeユーザーがアップロードしたビデオを入手することは可能だと思います。私はこれを行うことができるオンラインFacebookのビデオのダウンローダーをたくさん見ることができます。彼らがどのようにそうすることができるかについて私は知りたいと思う。 – basagabi

+0

2016年2月、これを調べると、実際にはUserの動画でこれを行う方法はありませんでしたが、Pageの動画でこれを行うことができます。私はあなたが何を見ているのか分からないが、これはFacebook上のビデオを見ることではない。別のサイトに表示されているFacebookからのサムネイルを見ると、Facebookページ(ユーザーではない)か、APIを使用しているユーザーの許可を得ています。それは大きな問題です、ユーザーはロックダウンされている、あなたは自分のコンテンツを使用するAPIを介して許可を得る必要があります。 – Jake

1

私はちょうどそれを得る:

https://graph.facebook.com/VIDEO_ID?fields=format,source 

これはあなたの埋込みのためのサムネイルURLとHTMLで利用可能なフォーマットの配列を取得します。 ソース属性は、ビデオの.mp4 URLを取得します。

試してみてください。https://graph.facebook.com/1706818892661729?fields=format,source

0

私はあなたがFacebookのグラフについての退屈なドキュメントを読ん経由せずに、あなたの質問に答えるために、PHPの関数を作成しました。 ビデオリンク、Facebook、YouTubeを挿入するだけで済みますが、他のソースを追加するために変更することができます。 アドレスバーのyoutubeビデオリンクをコピーし、facebookの場合はビデオを右クリックしてshow video urlをクリックしてコピーしてください。

//get video thumbnail for facebook and youtube 
function get_vid_thumbnail($link){ 
    $thumbnail=''; 
//check if video link is facebook 
    if (strpos($link, 'facebook') !== false) { 
     $thumbnail=fb_thumb($link); 
     //$thumbnail='fb'; 
    } 
//check if video link is youtube 
    if (strpos($link, 'youtube.com') !== false) { 
     $thumbnail=youtube_thumb($link); 
     //$thumbnail='youtube'; 
    } 
    return $thumbnail; 
} 


//supporting functions 
//get youtube thumbnail 
function youtube_thumb($link){ 
    $new=str_replace('https://www.youtube.com/watch?v=','', $link); 
    $vv='https://img.youtube.com/vi/'.$new.'/0.jpg'; 
    return $vv; 
} 

//clean the facebook link 
function fb_video_id($url) { 
    //split the url 
    $main=parse_url($url); 
    //get the pathe and split to get the video id 
    $main=$main['path']; 
    $main=explode('/',$main); 
    $main=$main[3]; 
    return $main; 
} 
//get the thumbnail 
function fb_thumb($link) { 
    $img = 'https://graph.facebook.com/'.fb_video_id($link).'/picture'; 
    return $img; 
} 

//get video thumbnail for fb and youtube ends 

//get embed url for facebook and youtube to be used as video source 
function get_vid_embed_url($link){ 
    $embed_url='sss'; 
//check if video link is facebook 
    if (strpos($link, 'facebook') !== false) { 
     # code... 
     $embed_url=fb_embed_link($link); 
     //$thumbnail='fb'; 
    } 
//check if video link is youtube 
    if (strpos($link, 'youtube.com') !== false) { 
     # code... 
     $embed_url=youtube_embed_link($link); 
     //$thumbnail='youtube'; 
    } 
    return $embed_url; 
} 
//get youtube embed link 
function youtube_embed_link($link){ 
    $new=str_replace('https://www.youtube.com/watch?v=','', $link); 
    $link='https://www.youtube.com/embed/'.$new; 
    return $link; 
} 
//get facebook embed link 
function fb_embed_link($link) { 
    $link = 'https://www.facebook.com/plugins/video.php?href='.$link.'&show_text=0&width=560'; 
    return $link; 
} 
関連する問題