1

Facebook認証などにログインを使用するアプリケーションを開発しています。facebook sdk 3.0プロフィール写真、emailID、publish_stramなどのユーザーデータにアクセスするためのいくつかの許可が必要です。これらのものにアクセスするためのコードで許可を与える方法。今まで私は得ることができますfb_access_token。これが私のコードです:

Session.openActiveSession(this, true, new Session.StatusCallback() {

            // callback when session changes state
            @Override
            public void call(Session session, SessionState state,
                    Exception exception) {
                if (session.isOpened()) {
                    // make request to the /me API
                    Request.executeMeRequestAsync(session,
                            new Request.GraphUserCallback() {

                                // callback after Graph API response with
                                // user
                                // object
                                @Override
                                public void onCompleted(GraphUser user,
                                        Response response) {
                                    if (user != null) {
                                        fb_user_id = user.getId();
                                    }

                                    Session session = Session
                                            .getActiveSession();
                                    if (session.isOpened()) {
                                        access_token = session
                                                .getAccessToken();
                                    }

                                    new postFBData().execute();
                                }
                            });
                }
            }
        });

Facebookのサンプルからこのコードスニペットを取得しました。access_tokenFBからアクセスする前に許可を与える方法は?

どんな助けでもありがたいです。

4

2 に答える 2

3

Session.openActiveSessionを呼び出すと、基本的な権限のみが付与されます(追加の権限を要求するまで)。また、読み取りと公開の許可要求を分離する必要があります。

あなたの場合、私は次のようなことをします:

Session session = // create a new Session using Session.Builder
Session.OpenRequest openRequest = // create an OpenRequest using Session.OpenRequest
openRequest.setPermissions( READ_PERMISSION_LIST );
session.openForRead(openRequest);
Session.setActiveSession(session);

次に、セッションを開いたら、

// check if you already have publish permissions first
if (!Session.getActiveSession.getPermissions.contains("publish_stream")) {
  Session.NewPermissionsRequest permissionRequest = // create a NewPermissionsRequest
  permissionRequest.setPermissions( PUBLISH_PERMISSION_LIST);
  Session.getActiveSession().requestNewPublishPermissions(permissionRequest);
}
于 2013-03-05T17:23:45.260 に答える
0

これが、String[]で特定の種類の機能を承認する方法だと思います。

 fb.authorize(MainActivity.this,new String[] {"publish_stream"}, new DialogListener(){

            @Override
            public void onFacebookError(FacebookError e)
            {
                Toast.makeText(MainActivity.this, "on Facebook error", Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onError(DialogError e)
            {
                Toast.makeText(MainActivity.this, "on error", Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onComplete(Bundle values)
            {
                updateButtonImage();

            }
            @Override
            public void onCancel()
            {

            }
        });
于 2013-03-05T14:15:51.553 に答える