1

アプリ設定の認証ダイアログですべてのパラメーターを設定したページタブアプリを作成しました。今、私がアプリから友達リクエストを送信し、友達がアプリ リクエストをクリックすると、アプリとリクエストされた権限などを説明する認証ボックスを見ることができます。しかし、誰かがアプリを追加した私のページにアクセスすると、 、そこからアプリをクリックすると、ユーザーは認証ボックスを表示せずにページタブに直接移動します。これは、ページから動作するはずの方法ですか? ページからアプリにアクセスしたユーザーの認証ボックスを表示することはできますか?

第二に、デフォルトでポップアップで開くマルチフレンドセレクターを追加しました。ポップアップではなく、ページ自体に表示することはできますか? display: 'page' オプションを追加しようとしましたが、うまくいきませんでした。

から同じコードを使用しました: https://developers.facebook.com/docs/reference/dialogs/requests/

... 
<body>
<div id="fb-root"></div>


<p>
  <input type="button"
    onclick="sendRequestToRecipients(); return false;"
    value="Send Request to Users Directly"  />
  <input type="text" value="User ID" name="user_ids" />
  </p>
<p>
<input type="button"
  onclick="sendRequestViaMultiFriendSelector(); return false;"
  value="Send Request to Many Users with MFS" />
</p>

<script>
window.fbAsyncInit = function() {
  FB.init({
    appId      : XXXXXXXXXXX,
    status     : true, 
    cookie     : true,
    xfbml      : true,
    oauth      : true,
  });
};
(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>

<script>
function sendRequestToRecipients() {
        var user_ids = document.getElementsByName("user_ids")[0].value;
        FB.ui({method: 'apprequests',
          message: 'My Great Request',
          to: user_ids, 
        }, requestCallback);
      }

      function sendRequestViaMultiFriendSelector() {
        FB.ui({method: 'apprequests',
          message: 'My Great Request'
        }, requestCallback);
      }

      function requestCallback(response) {
        // Handle callback here
      }
</script>
...

この点で何か助けていただければ幸いです。

4

1 に答える 1

0

これは、ページから動作するはずの方法ですか?

はい。アプリがページから直接アクセスされた場合、認証された紹介は機能しません。

ページからアプリにアクセスしたユーザーの認証ボックスを表示することはできますか?

もちろん、signed_request パラメーターを分析し、それに応じて対応します (つまり、認証ダイアログをサーバー側またはクライアント側で表示します)。

于 2012-06-15T18:29:59.400 に答える