1

私は次のJavascriptコードを持っています:

        function RemoveRequest( requestToRemove )
        {           
            FB.api( requestToRemove, 'delete', function(response) {
                console.log(response);
              });
        }

これは、人々が使用している標準的なアプローチのようです。残念ながら、エラーが発生します。これから取得する応答オブジェクトには、次のように記載されています。

そのため、代わりに requestid_facebookid を使用してみます...うまくいきません。経由でアクセストークンを渡そうとします

FB.api(requestToRemove, 'delete', {access_token:accessToken}, function(response) {
                console.log(response);
              });

どちらも同じエラーが発生します。

どんなヒントでも大歓迎です。

編集:わかりやすくするために、取得しているauthTokenはgetLoginStatusのresponse.authResponse.accessTokenからのものです。

4

3 に答える 3

4

これらのリクエストを削除する方法がまだわかりません。ただし、グラフ API を使用して回避策を考え出しました。

新しいコードは次のとおりです。

アプリ リクエストの送信

var params = {};
params['message'] = 'My message!';
params['title'] = 'My title!';
params['to'] = inID;
params['access_token'] = accessToken;
FB.api('/me/apprequests', 'POST', params, 
    function(response){
        if( response )
        {
            console.log( response );
        }
    });

そしてそれを削除する

function RemoveRequest( requestToRemoveID, facebookUserID )
{
        requestToRemoveID = '/'+requestToRemoveID + '_' + facebookUserID;
    console.log( requestToRemoveID );

    FB.api( requestToRemoveID, 'DELETE', function(response) {
        console.log(response);
        });
}

これにより、リクエストのタイプがユーザー アプリ リクエストからアプリ リクエストに変わったようです。ロゴがプロフィール写真からアプリアイコンに変わりました。これらのリクエストは、グラフ API と Facebook の Web ページの両方から削除できました。アイデアがあれば、ユーザー アプリのリクエストを削除する方法を知りたいです。

于 2011-10-23T18:44:12.147 に答える
2

オンラインで検索するのに 6 時間かかりましたが、結局自分で見つけました。

リクエストを送信:

private function invite():void
{
    var dat:Object = new Object();
    dat.message = "MyMessage";
    dat.title   = "MyTitle;
    dat.filters = ['app_non_users'];

    Facebook.ui('apprequests', dat, onUICallback);
}

コールバックの 2 つの可能な方法:

オプション 1 と Facebook.api

private function onUICallback(result:Object):void{  

    if(result == null){
        trace('User closed the pop up window without inviting any friends');
    }else{

        if(result.hasOwnProperty("request")){

            var data:Object = new Object();
            data.method = 'delete';
            var userid:String = "here goes the uid of the user that sent the request"
            var fullrequestID:String = result.request + '_' + userid;

            Facebook.api(fullrequestID, onRequestDelete, data, "POST")

        }
}

オプション 2: Facebook.deleteObject を使用

private function onUICallback(result:Object):void{
    if(result == null){
        trace('User closed the pop up window without inviting any friends');
    }else{
        if(result.hasOwnProperty("request")){
            var userid:String = "here goes the uid of the user that sent the request"
            var fullrequestID:String = result.request + '_' + userid;           

            Facebook.deleteObject(fullrequestID, onRequestDelete);
        }
    }
}

削除のコールバック関数:

private function onRequestDelete(result:Object, fail:Object):void{
    if(result == null){
        trace('Delete Request faild');
    }else{
        trace('Delete Request succes');
    }
} 
于 2012-02-08T14:29:21.640 に答える
1

Javascript SDK を使用して、現在ログインしているユーザーの保留中の Facebook アプリ リクエストをすべて削除する場合は、次のようにします。

        FB.getLoginStatus(function(response) {
            console.log(response);
            if (response.status === 'connected') {

                var uid = response.authResponse.userID;
                var accessToken = response.authResponse.accessToken;

                FB.api('/me/apprequests', function(response){
                    console.log( response );

                    for (var i = 0; i < response.data.length; i++){

                        FB.api(response.data[i].id, 'delete', function(response) {
                            console.log(response);
                        });
                    }
                });
            } 
        });
于 2015-05-28T18:33:14.443 に答える