FacebookフレンドリストウィンドウがInternet Explorer 8で開かない

ユーザーがFriendslist要求ダイアログウィンドウから友だちを選択すると、 FB.UI() JavaScript SDKを使用して、選択したフレンドIDを取得します。 選択されたフレンドidはハンドラファイルに渡されます。

上記の状況はFirefoxで正常に機能しています。つまり、友だちIDを取得できますが、Internet Explorer 8では同じIDが機能していません。

IE8では、友達リクエストダイアログを開くためにボタンをクリックすると、以下のエラーが表示されます。

APIエラーコード:191 APIエラー説明:指定されたURLは   アプリケーションによって所有されていますエラーメッセージ:redirect_uriは所有していません   アプリケーション。

私は redirect_uri も与えていましたが、私は友人idを取得していません。

コードは以下の通りです:

function sendRequestToManyRecipients() {
       alert("sendRequestToManyRecipients");
        FB.ui({method: 'apprequests',
              appId  : '',        
           display: 'popup',           
          message: 'My Group'
        }, requestCallback);       
      }

 function requestCallback(response) {
        getMultipleRequests(response.request_ids);
      }

var friend=new Array();
      var sfriend="";
      function getMultipleRequests(request_ids)
      {   
            if (response && request_ids)
             {
                    var ids = request_ids;                    
                    var _batch = [];
                    for (var i = 0; i < ids.length; i++) 
                    {              
            _batch.push({ "method": "get", "relative_url":ids[i] });
                    }
                    if (_batch.length > 0) 
                    {
                        FB.api('/', 'POST', { batch: _batch }, function (res) 
                        {                           
                            for (var j = 0; j < res.length; j++) 
                            {
                                body = res[j].body;
                                var myObject = eval('(' + body + ')');
                                friendID = myObject.to.id;                               
                                friend[j]=friendID.toString();
                            }
                        });

                    }
                }
                showfriends();
            }


    function showfriends()
            {                
                 for (var i = 0; i < friend.length; i++)
                 {
                    sfriend=sfriend+","+friend[i].toString();
                 }              
                if(sfriend != null)
                {                    
                    window.open("Friends.ashx?id="+sfriend,'WinName','width=900,height=500,left=200,top=200'); }               

            }

私は解決策を探していますが、正しい解決策を見つけることができません。 誰にもこれに対する解決策がありますか?

1

1 答え

Apprequestダイアログでユーザーが送信したフレンドIDを取得しますか?

リクエスト2.0を効率的に使用することを検討してください。リクエストを送信した後に別のAPIを呼び出さずにIDを取得するのに役立ちます

I have answered a similar question before, please take a look: how to get user id on facebook request dialog

updated:2011-11-29

あなたの参考文献として、私はIE8、Firefox 7、chrome 15の両方で動作するfb appのプロジェクトの前にこのコードを使用します

FB.ui({
    method : "apprequests",
    title : "title",
    message : "messafe!!", 
    display : "iframe"
    },
    inviteCallback
);              

function inviteCallback(response)  {
//  Requests 2.0 Efficient
//  {
//      request: ‘request_id’
//      to:[array of user_ids]
//  }
    if (response.request)  {
        var receiverIDs = response.to;
        document.inviteForm.receivers.value = receiverIDs.join(",");
        document.inviteForm.submit();
    }
}
0
追加された
さらなるプロセスのためにIDを取得したい場合は、request 2.0を有効にするとたくさん保存するのに役立ちます。答えの私のリンクを見てみましょう。私のコードでは、問題はFB APIからのgetMultipleRequestsのコードだと思います。このFB.api( ''、{"ids":requestIds}、function(response){console.log(response); });それは終わった!
追加された 著者 Hanon,
私は自分のコードを使用して、クロム、ie8とfirefoxの両方で動作しますが、IE8はポップアップをブロックしていますか? 'ポップアップ'の代わりに 'iframe'を使用して問題がないかどうか確認してください
追加された 著者 Hanon,
IE8で動作するかどうかを最初に確認するプロセスがなくても、友だちのリクエストを促すことができます。
追加された 著者 Hanon,
こんにちはHanon !!あなたの返事をありがとうございます。あなたは正しいです。私は、あなたがapprequestダイアログを送った友人idを取得したい。私が掲示した上記コードはうまく働いていた(すなわち、私は友人idを得ることができる)をMozilla.ButでIE8で上記のコードは動作していません。
追加された 著者 Pavan,
私の主な問題は、友人のダイアログウィンドウが開かれていない場合、私が使っていた上記のコードのために、友人要求のダイアログウィンドウがIE 8で開かれていないことです。あなたの提案したコードを実装しましたが、希望の結果が得られません。IEとMozillaの両方で友人ダイアログウィンドウが開くようなコードを入力してください。
追加された 著者 Pavan,
あなたはちょうどあなたのコードHanon.Iを表示することができます私は表示を使用して: 'iframe'butのエラーウィンドウを表示します。 APIエラーコード:191 APIエラー説明:指定されたURLはアプリケーションによって所有されていません。エラーメッセージ:redirect_uriはアプリケーションによって所有されていません。
追加された 著者 Pavan,
それでも依頼ダイアログでIE8で選択したフレンドIDを取得できません。
追加された 著者 Pavan,
IEでこの問題をどのようにソートするか教えてください。
追加された 著者 Pavan,
Friendsリクエストダイアログ自体はIE8では開かれていません。
追加された 著者 Pavan,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript