1

私は更新された Facebook SDK V3.0 final for Android を使用しています。アプリケーションを持っていない facebook 友達にアプリ リクエストを送信しようとしています。コードは次のとおりです。

public void fbookinvite(){

        Bundle postParams = new Bundle();
        postParams.putString("name", "X");
        postParams.putString("message", "DOWNLOAD X.");

        Session session = Session.getActiveSession();

        postParams.putString("access_token", session.getAccessToken());

        if (session==null||session.getState().isClosed()){
            System.out.println("session is null");
        }else{
            //meaning we are good to go.
            Request request = new Request(session,"/friend facebook id/apprequests", postParams, HttpMethod.POST, new Request.Callback() {

                @Override
                public void onCompleted(Response response) {

                    System.out.println("response was: "+response.toString());
                }

            });

            Request.executeBatchAsync(request);
        }       
    }

コードを実行すると、出力された応答から次のいずれかが得られます。

responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 2, errorType: OAuthException, errorMessage: (#2) Failed to create any app request}, isFromCache:false

... また:

Response:  responseCode: unknown, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: null}, isFromCache:false}

次の権限があります:publist_streamおよびpublish_actions.

問題を解決した後、アプリのリクエストに受信者のグループを追加する方法も知りたいです。

Facebook ダイアログを使用したくありません。

4

2 に答える 2

1

Try this instead:

        Bundle params = new Bundle();   
        params.putString("message",
                "Learn how to make your Android apps social");
        params.putString("to", "YOUR_FRIEND_UID_HERE");
        WebDialog requestsDialog = (new WebDialog.RequestsDialogBuilder(
                this, Session.getActiveSession(), params))
                .setOnCompleteListener(new OnCompleteListener() {

                    @Override
                    public void onComplete(Bundle values,
                            FacebookException error) {
                        // your code here 
                    }

                }).build();
        requestsDialog.show();

This is the proper way to send an app request explicitly to someone. If you do not include the to parameter, the user can choose who they want to send to.

于 2013-01-15T05:00:15.583 に答える
0
Response:  responseCode: unknown, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: null}, isFromCache:false}

これは通常、独自のスレッドで同時に FB リクエストを実行することに関連するシナリオです。私はどちらかを使用する難しい方法を学びました

Request.executeAsync()

また

RequestAsyncTask
于 2013-05-02T14:34:01.757 に答える