5

初期化コード:

window.fbAsyncInit = function() {
    var bheight = $(document).height() + 50;
    FB.init({
        appId: appid,
        frictionlessRequests : true,
        status: true,
        cookie: true,
        xfbml: true,
        oauth: true});
    FB.Canvas.setSize({ width:760,height:bheight });
};

// Load the SDK Asynchronously
(function(d){
   var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
   if (d.getElementById(id)) {return;}
   js = d.createElement('script'); js.id = id; js.async = true;
   js.src = "//connect.facebook.net/en_US/all.js";
   ref.parentNode.insertBefore(js, ref);
 }(document));

次のコードは onclick で呼び出されます。

function sendRequestViaMultiFriendSelector(msg){
    FB.ui({      
        method: 'apprequests',
        message: msg
    });
}

ポップアップが表示され、ユーザーは友達を選択できますが、送信またはキャンセルした後、ウィンドウが空白になります。ポップアップはまだありますが、白くて空です。Firebug に記録されたエラーはありません。

コールバック関数を追加しても、到達することはありません。

セルフ クロージングの redirect_uri (redirect_uri: ' http://.../self_close.html ') を追加しようとしましたが、ポップアップ リダイレクトを self_close.html に送信した後、その html のコンテンツが <script type="text/javascript">window.close(); </script>ポップアップだけの場合でも、'選択した友達にリクエストを閉じたり、送信したりしません。

不思議なことに、数週間前まではこれが機能していましたが、友達を何人か選択して招待状を送ると、ポップアップが閉じてしまいました。

私のアプリはローカルホストで実行されており、サンドボックス モードであり、他のアプリの管理者、テスト ユーザー、通常のユーザーなどを招待しようとしました。以前は機能していました。

今何が起こっているのでしょうか?

私がチェックした同様の質問:

前もって感謝します!

アップデート

method:apprequests の代わりに method:feed を使用してテスト メソッドを追加しました。

function feed_test() {
    // calling the API ...
    var obj = {
      method: 'feed',
      name: 'Feed test',
      caption: 'Test',
      description: 'Test'
    };

    function callback(response) {
      document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
    }

    FB.ui(obj, callback);
  }

onclick でこのメソッドを呼び出すと、ポップアップが表示され、コメントを入力して送信すると、ポップアップも空白になります。ポップアップは閉じていませんが、投稿は私のウォールに公開されています。

更新 2

Facebook の外部で ( http://facebookapp.localhost/を使用して) ブラウザでアプリを開くと、apprequest が正常に機能し、無効なアドレス バーなしでポップアップが開くことに気付きました。FB 内で友達を招待しようとすると、ポップアップに次のような灰色のアドレス バーが表示されます。

https://www.facebook.com/dialog/apprequests?api_key=XXXXXXXXXX&app_id=XXXXXXXXXX&display=popup&frictionless=true&locale=en_US&message=XXXX&next=http%3A%2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter.php%3Fversion%3D5%23cb%3Df2b013bbfaa712%26origin%3Dhttp%253A%252F%252Ffacebookapp.localhost%252Ff3267a4c771122%26domain%3Dfacebookapp.localhost%26relation%3Dopener%26frame%3Df3ad1f46b651196%26result%3D%2522xxRESULTTOKENxx%2522&sdk=joey

FBの内外でアプリを使用する際の違いは何だろうか、jsの問題があるかもしれません。

修繕

今日、私はもう一度試してみましたが、問題はなくなりました。また、ポップアップが閉じず、コールバック関数が呼び出されていない場合でも、招待状が送信されました。私のテストユーザーは、彼らがそれらを取得していることを確認するのを忘れていました... とにかく、謎のバグ、謎の修正。

4

0 に答える 0