0

Facebook JavaScript SDK を使用して、アプリに「publish_stream」権限を付与するようユーザーに依頼したいと考えています。

次のように初期化します。

FB.init({
    appId  : '203702512703',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true, // parse XFBML
    channelURL : 'http://mydomain.com/channel.php', // channel.html file
    oauth  : true // enable OAuth 2.0
});

そして、私の FB.ui 呼び出しは次のようになります。

FB.ui({
    client_id: '203702512703',
    method: 'oauth',
    scope: 'publish_stream',
    redirect_uri: 'http://mydomain.com/',
    response_type: 'token',
    display: 'dialog'
  });

「ダイアログ」を「ポップアップ」に変更すると、完全に機能します。しかし、「dialog」を指定するか、オプションを省略した場合、fb-div が表示されますが、読み込み中のアニメーション ( http://p.iqs.me/t1c4jなど) が表示され、コンテンツが読み込まれません。

私は何を間違っていますか?

更新: このページhttp://developers.facebook.com/docs/reference/dialogs/#displayを見つけました。このページでは、「iframe」をディスプレイとして使用することについて次のように述べています。特定のダイアログで、有効な access_token を渡す必要があります」

「ダイアログ」の考えについてそのようなことは何も言いませんが、iframeとダイアログの両方が同じ悪い結果をもたらします。

access_token を渡すにはどうすればよいですか?

4

2 に答える 2

1

セキュリティ (クリックジャッキングとフィッシング) のため、javascript SDK の場合は 'oauth' または FB.login のメソッドには 'popup' が必須です。とにかくFB.loginを使用してアクセス許可を取得したり、認証したりすることをお勧めします。より便利だからです。

お役に立てれば

于 2011-09-29T18:41:14.987 に答える
0

また、display: iframe を FB.login に使用する方法には、タブにいるのかキャンバスにいるのかによって違いがあります。タブでは access_token は必要ありませんが、キャンバスでは必要です。

そのため、キャンバスでは、ポップアップがブロックされたり、かなりの割合のユーザーが自分のウォールへの投稿などの単純な投稿に対して基本的なアクセス許可を提供することを拒否したりして立ち往生しています。IMVHO FB はこれを早急に修正する必要がありますが、何ヶ月もバグが記録されており、変更の兆候はありません。

于 2011-10-03T15:18:47.133 に答える