0

フレンド ウォールへの添付ファイルとして URL を公開したい:

var attachment={'name':'favor','href':'http://128.196.239.71/movie.php?mid=<?php echo  $_GET['mid']; ?>'};
                                         Facebook.streamPublish('',attachment,null,friends[i],comment,callback);

上記を実行すると、Facebook が未定義になります。これを修正するにはどうすればよいですか?

このメッセージの送信者にこれを行うには、特別な許可を設定する必要がありますか?

4

1 に答える 1

2

stream.publish メソッドまたは同等のグラフ API 呼び出しを使用するには、stream.publish 権限が必要です。

次のような方法で、ユーザーがこの権限を既に付与していることを確認できます。

FB.getLoginStatus(function(response) { if (response.perms) { /* check perms */ } })

次のような方法で許可をリクエストできます。

FB.login(function(response) { /* check perms */ }, {scope: 'publish_stream'})

次に、応答で実際に許可されたかどうかを確認できます。その後、ストリーム公開呼び出しを実行できるはずです。

ただし、「Facebook.streamPublish」という呼び出しの形式を認識できません。新しいAPIでは、次のような呼び出しを行う必要があると思います

FB.api({method: 'stream.publish', message: 'hello'}, function(response) {})

これらすべての代わりに、ダイアログ API を使用して投稿を作成し、それをユーザーに表示して、承認または非承認にすることができます。これには、stream.publish パーミッションは必要ありません。このようなもの (FB.ui API ドキュメントにある例):

 FB.ui(
   {
     method: 'feed',
     name: 'Facebook Dialogs',
     link: 'http://developers.facebook.com/docs/reference/dialogs/',
     picture: 'http://fbrell.com/f8.jpg',
     caption: 'Reference Documentation',
     description: 'Dialogs provide a simple, consistent interface for applications to interface with users.',
     message: 'Facebook Dialogs are easy!'
   },
   function(response) {
     if (response && response.post_id) {
       alert('Post was published.');
     } else {
       alert('Post was not published.');
     }
   }
 );

Facebook の変化の速さを考えると、この情報の一部が、あなたが読んだ時点でまだ正確であることを願っています (または、最初から正確であることさえあります)。

于 2011-05-01T07:16:06.667 に答える