2017-09-04 13 views
0

私がしようとしているのは、ユーザーが特定のビデオのためにFacebookによって提供された埋め込みまたはURLをコピーさせることです。グラブFacebookビデオapiまたはidを使ったサムネイル

ユーザーがURLまたは埋め込みコードを貼り付けると、サムネイルとタイトルを取得してそれらのプロパティをデータベースに保存する正規表現を実行します。

投稿を保存した後にページが更新されると、カスタムプレイヤーが表示され、実際にFacebookのビデオプレーヤーはプレイをクリックするまで表示されません。

私のページがすばやく読み込まれ、実際のプレイヤーのjsによって遅くならないように、つまりユーザーが実際にプレイをクリックするまでこれを実行します。

Facebookのビデオプレーヤーのサムネイルを取得する方法がわからないことを除いて、これをすべて行う方法はすでにわかっています。

ほとんどのサイトとは異なり、Facebookはog:imageメタタグにサムネイルを提供していません。

私はどのように私のデータベースに保存するサムネイルのURLをつかむことができますか?

答えて

0

私はfacebookグラフについての退屈なドキュメントを読まなくても、あなたの質問に答えるPHP関数を作成しました。ビデオリンク、Facebook、YouTubeを挿入するだけですが、他のソースを追加するために変更することができます。 私はあなたの質問に答えるために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; 
} 
関連する問題