4

YouTube から Facebook ユーザーのウォールにミュージック ビデオを投稿するアプリケーションがあります。Facebook への投稿では、この埋め込みビデオが Facebook から再生可能になります。最近、それは起こらなくなりました。

いくつかのテストの後、ソースが YouTube ビデオであるグラフ API 投稿を作成する場合youtube.com、Facebook コンテキスト内で再生できるようにするには、リンクもドメイン内に必要になるようです。

繰り返す:

Facebook にログインして、次の URL にアクセスすると、自分の目で確かめることができます。

https://developers.facebook.com/tools/explorer

次に、アクセス トークンとアクセス許可を取得しますread_stream(publish_stream拡張アクセス許可タブ)。

に切り替えて、次のフィールドを使用してエンドポイントを /me/feed に設定しますGETPOST

message = message
description = description
name = name
caption = caption
link = http://www.youtube.com/watch?v=r1dfEf1qOt4
source = http://www.youtube.com/e/r1dfEf1qOt4
picture = http://img.youtube.com/vi/r1dfEf1qOt4/0.jpg

Facebook ウォールに表示され、プレイできるようになります。

もう一度やり直して、リンクをhttp://www.google.comに変更します。再生できなくなりました。

これが予想される動作であるかどうかは誰でも確認できますか? Facebook ドキュメントで何も見つかりません。おそらく私は何かを逃していますか?

4

2 に答える 2

4

一般化された回避策

私はこの同様の質問に対する答えを一般化しました: Facebook API を介して Facebook フィードに SWF を投稿します。meta2 つのパラメーターを受け取り、必要なタグを生成するページを作成しました。Facebook はリンクを受け入れ、ユーザーは正しくリダイレ​​クトされ、投稿されたビデオごとに個別のページは必要ありません。

  1. url- 最終 URL
  2. id- YouTube または埋め込みビデオの ID

リンクがビデオに関連付けられていない埋め込み投稿を多数作成することに成功しました。

投稿例

message = Post message
description = Post description if needed.
name = Post name
caption = Post caption
link = http://vbcopper.com/jsuar/so/fbembedvideo.php?url=stackoverflow.com&id=QGAJokcwBXI
source = http://www.youtube.com/e/QGAJokcwBXI
picture = http://img.youtube.com/vi/QGAJokcwBXI/0.jpg

PHP

<?php
 $id =  $_GET["id"];
 $url =  $_GET["url"];

 if ( isset($url) ) {
echo <<< EOT
<html>
<head>
    <title>$url</title>
    <meta property="og:title" content="Page Title" />
    <meta property="og:type" content="website"/>
    <meta property="og:description" content="Content for Description" />
    <meta property="og:image" content="http://i2.ytimg.com/vi/$id/mqdefault.jpg" />
    <meta property="og:site_name" content="Content for caption"/>
    <meta property="og:video" content="http://www.youtube.com/v/$id?version=3&autohide=1">
    <meta property="og:video:type" content="application/x-shockwave-flash">
    <meta property="og:video:width" content="640">
    <meta property="og:video:height" content="360">
    <META http-equiv="refresh" content="1;URL=http://$url">

</head>
<body>
</body>
</html>
EOT;
} else {
    echo "Nothing here...";
}
?>

所見

問題を再現することができました。回避策が見つかりませんでした。

これはバグとして Facebook に送信されましたが、優先度は低いと見なされています。

バグ: リンク属性を使用してフィードに動画を投稿しても、ソースが埋め込まれません

于 2013-02-07T21:12:10.883 に答える
0

通常、YouTube 動画を Facebook ページに共有するには、メッセージ、リンク、ソース、画像のパラメーターのみが必要です。必要に応じて、ソース、画像パラメータをスキップすることもできます。つまり、FacebookC#SDK を使用してビデオを Facebook に共有している場合、必要なのは次のコードだけです。

 var fb = new Facebook.FacebookClient(yourPageAccessToken); 
 argList["message"] = message;
 argList["link"] = "http://www.youtube.com/watch?v=" + specialOffer.YoutubeId;
 argList["source"] = "http://www.youtube.com/v/" + specialOffer.YoutubeId;
 argList["picture"] = "http://img.youtube.com/vi/" + specialOffer.YoutubeId + "/0.jpg";
 fb.Post("feed", argList);

また

 var fb = new Facebook.FacebookClient(yourPageAccessToken); 
 argList["message"] = message;
 argList["link"] = "http://www.youtube.com/watch?v=" + specialOffer.YoutubeId;
 fb.Post("feed", argList);
于 2014-09-17T05:30:59.240 に答える