41

Facebook の Web インターフェイスを使用して動画リンク (YouTube、Vimeo などから) を投稿に手動で添付すると、Facebook はリンクを動画として自動的に認識し、結果のステータス メッセージで動画をインラインで再生できるようにします。ビデオは、ウォールまたはニュース フィードに埋め込みプレーヤーとして表示されます。


手動で投稿した後の埋め込み動画の例を次に示します。

埋め込みビデオ


Graph API を使用してリンクを投稿する場合、動画は埋め込まれません。

curl -F 'access_token=...' \
     -F 'message=Link to YouTube' \
     -F 'link=http://www.youtube.com/watch?v=3aICB2mUu2k' \
     https://graph.facebook.com/me/feed

埋め込まれていない動画


答えはsource引数に関連していると思われますが、そこにあるべき URL がわかりません。同じ URL を指定すると、サムネイル画像がまったくない投稿につながるだけです。

source : 投稿内に埋め込む Flash ムービーまたはビデオ ファイルへの URL。read_stream.

Graph API だけを使用して、同じ埋め込み動作を実現するにはどうすればよいですか?

4

7 に答える 7

49

ページ内の実際の swf の URL とサムネイル画像を自分で抽出する必要があるようです。たとえば、これはうまくいくようです:

curl -F 'access_token=...' \
     -F 'message=Link to YouTube' \
     -F 'link=http://www.youtube.com/watch?v=3aICB2mUu2k' \
     -F 'source=http://www.youtube.com/v/3aICB2mUu2k' \
     -F 'picture=http://img.youtube.com/vi/3aICB2mUu2k/0.jpg' \
     https://graph.facebook.com/me/feed

ページの URL から有効なソースと画像を生成できるようです。URL は次のようになりhttp://www.youtube.com/watch?v=<code>ます。http://www.youtube.com/e/<code>コード (ここでは 3aICB2mUu2k) を取得し、ソースと画像の URL に挿入しますhttp://img.youtube.com/vi/<code>/0.jpg

于 2011-03-15T18:09:51.277 に答える
6

YOUTUBE や VIMEO に動画を手動で投稿する方法は次のとおりです (オンラインで見つけるのは難しい)。具体的には、ユーザーの Web サイト/ブログ投稿を指す LINK 値が必要な場合です。

                //search for youtube.com and vimeo.com in the 'link' value
                if (preg_match("/youtube.com/", $model->link) || preg_match("/youtu.be/", $model->link)){
                    if (preg_match('%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $model->link, $match))
                    {
                        $video_code = $match[1];
                    }
                   $source = 'http://www.youtube.com/e/'.$video_code; 
               $picture = 'http://img.youtube.com/vi/'.$video_code.'/0.jpg';
                }
                else if (preg_match("/vimeo.com/", $model->link))
                {
                    if (preg_match('/vimeo\.com\/(clip\:)?(\d+).*$/', $model->link, $match))
                    {
                        $video_code = $match[2];
                     }
                    /* Get Vimeo thumbnail */
                    $hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$video_code.php"));
                    $picture = $hash[0]['thumbnail_medium'];  
                    $source = 'https://secure.vimeo.com/moogaloop.swf?clip_id='.$video_code.'&autoplay=1';
                }

                $args = array(
                'message'   => //user's comment
                'name' => //Title of post
                'link'      => 'http://...'//link to video on user's website

                'source' => $source,
                'picture' => $picture,
                );

                if ($this->_facebook->api("/".$this->facebookUserID."/feed", "post", $args)){
                //posted to facebook
                }
于 2012-01-18T19:42:57.220 に答える
4

/feed の代わりに /links を使用してリンクとして共有すると、うまくいくようです。YouTube、Vimeo、および Facebook の動画は、手動で投稿するかのように埋め込まれます。

curl -F 'access_token=...' \
     -F 'message=Link to YouTube' \
     -F 'link=http://www.youtube.com/watch?v=3aICB2mUu2k' \
     https://graph.facebook.com/me/links
于 2012-02-04T23:33:20.953 に答える
1

/feed を使用せず、/links (https://graph.facebook.com/me/links/ ) を使用し、YouTube の /watch?v=ZL7nV7WwJKg URL 形式を使用して「メッセージ」および「リンク」パラメーターを単純に POST します。/feed は私には機能しませんでした。静的なグラフィックとリンクを投稿しただけでしたが、YouTube から Facebook にビデオを共有するときと同じように、実際に Facebook に埋め込んで再生したかったのです。魅力のように機能します。

于 2012-03-19T03:04:45.443 に答える
1

/feeds または /links の GROUPS への投稿では機能しません。ここを参照してください。近いうちに修正するために、問題に賛成票を投じてください。

/links は、ユーザー自身が投稿したリンク タイプの投稿のみを表示する /feeds の複製です。

于 2014-02-28T00:28:10.103 に答える
0

代わりに、メッセージ属性としてリンクを投稿してみてください。そうすればうまくいきます。

message = your message + link
于 2011-08-24T09:28:02.913 に答える
0

API を使用して .swf ファイルまたはビデオを共有すると、youtube でない限り Facebook にサムネイルが表示されません。そして、それはFacebookの仕様によるものです。このリンクを確認してください

https://developers.facebook.com/bugs/589975484398226?browse=external_tasks_search_results_526fc388b99e18881434478

于 2014-04-26T04:58:06.463 に答える