0

Facebookユーザーをイベントに参加させようとしています

Request.executePostRequestAsync(...)

ただし、サーバーは常に次を返します。

{Response:  responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"FACEBOOK_NON_JSON_RESULT":false}}, error: null, isFromCache:false}

認証が機能し、ユーザー情報を取得できます... Graph API Explorerとのリンクを試してみたところ、そこで機能したため、コードに問題があるはずです。権限も確認しましたが、問題ありません。誰かが私を助けてくれれば幸いです。ここに私のコードがあります:

List<String> permissions = new ArrayList<String>();
permissions.add("rsvp_event");

private void attendToEvent(final String eventID){
    Session.openActiveSession(MainActivity.this, true, new Session.StatusCallback() {

        @Override
        public void call(Session session, SessionState state, Exception exception) {

            Session actSession = Session.getActiveSession();
            if (!hasRSVPEventPermission() && actSession.isOpened()) {
                actSession.requestNewPublishPermissions(new Session.NewPermissionsRequest(MainActivity.this, permissions));
            }

            String accessToken = actSession.getAccessToken();
            String path = new String("https://graph.facebook.com/"+eventID+"/attending");
            if(session != null && session.isOpened()){
                JSONObject jo = new JSONObject();
                final GraphObject go = GraphObject.Factory.create(jo);
                Request.executePostRequestAsync(session, path, go, new Request.Callback() {
                //Request.executeGraphPathRequestAsync(session, path, new Request.Callback() {

                    @Override
                    public void onCompleted(Response response) {
                        System.out.println(response.toString());
                        showAttendResult(response.getGraphObject(), response.getError());
                    }
                });
            }
        }
    });
}

private boolean hasRSVPEventPermission() {
    Session session = Session.getActiveSession();
    return session != null && session.getPermissions().contains("rsvp_event");
} 
4

1 に答える 1

1

わかった!問題は、このパスの代わりに:

String path = new String("https://graph.facebook.com/"+eventID+"/attending");

Graph API はこれを想定しています。

String path = new String(eventID+"/attending");

したがって、「http://graph.facebook.com/」なしで!

于 2013-05-07T18:05:56.387 に答える