1

ユーザーが自分の投稿を Facebook ウォールにクロス投稿できるようにするコメント ボードがあります。Facebook のプロフィール写真を取得するために、すでにユーザー アカウントを Facebook アカウントに接続しており、問題なく動作しています。

こちらのガイド (https://developers.facebook.com/docs/reference/dialogs/feed/) に従おうとしましたが、最初の例は問題なく動作しましたが、ダイアログを表示したくないので、 「Graph API と同等」ですが、oauth 例外 #200 が発生し続けます (「この API 呼び出しには有効な app_id が必要です。」)。

FB.getLoginStatus を確認したところ、接続されており、FB.getAccessToken() を実行するとアクセス トークンが返されました。

何が得られないのですか?

編集

はい、コード...今私はこれを持っています:

<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
    appId : 'APP_ID',
    status : true,
    cookie : true,
    xfbml : true
});
FB.UIServer.setLoadedNode = function(a,b){FB.UIServer._loadedNodes[a.id]=b;};
};
(function(d){
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    d.getElementsByTagName('head')[0].appendChild(js);
}(document));

</script>

アクセス トークンを取得し、ログインしている Facebook ユーザー (自分) が app_id に一致するアプリに接続していることを確認できます。

stream.publish メソッドで FB.ui を使用して、メッセージ ダイアログを呼び出すこともできます。

私が理解できないのは、メッセージ ダイアログを表示せずにローカル コメントを Facebook ページに透過的に投稿する方法です。

ポインタはありますか?

前もってありがとう:-) マーティン

4

1 に答える 1

1

マーティン、

function shareWithFacebook() {
      var photoName;
      var photoUrl;
      photoName = document.getElementById("ImageName").value;
      photoUrl = document.getElementById("ImageUrl").value;
      debugger;
      var ui;
      var publish;
      FB.getLoginStatus(function (response) {
          FB.api('/me/feed', 'post', {
              message: 'I just added an image of ' + photoName + ' on http://www.yoursite.com/',
              name: photoName,
              link: 'http://www.yoursite.com/',
              picture: photoUrl,
              actions: [{ name: 'Photo', link: 'http://www.yoursite.com/'}]

          }, function (response) {
              if (!response || response.error) {
                  alert('Couldn\'t post to Facebook!');
              }
              else {
                     alert('الحمد لله');
              }
          }

                     );
      });
  }          
于 2012-07-19T10:38:47.230 に答える