48

我正在使用 Facebook SDK,但我想创建相册,但我在会话中获得了 ACCESS_TOKEN_REMOVED。

在会话中得到这个

{Session state:OPENED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[read_stream, manage_friendlists, read_mailbox, status_update, photo_upload, video_upload, sms, create_event, rsvp_event, email, xmpp_login, create_note, share_item, publish_stream, ads_management, read_insights, read_requests, manage_notifications, read_friendlists, manage_pages, publish_actions, user_birthday, user_religion_politics, user_relationships, user_relationship_details, user_hometown, user_location, user_likes, user_activities, user_interests, user_education_history, user_work_history, user_online_presence, user_website, user_groups, user_events, user_photos, user_videos, user_photo_video_tags, user_notes, user_checkins, user_about_me, user_status, basic_info]}, appId:458921577539675}

代码。

/**
 * Connect to facebook using Facebook SDK.
 */
public void connectToFacebook() {
    Session session = Session.getActiveSession();
    if(session == null || session.isClosed()) {
        Session.openActiveSession((Activity)context, true, new StatusCallback() {
            @Override
            public void call(Session session, SessionState state, Exception exception) {
                if(session.isOpened() && state == SessionState.CREATED_TOKEN_LOADED) {
                    Log.v(GlobalVars.TAG, "Token::" + session.getAccessToken());
                    Request.executeMeRequestAsync(session, new GraphUserCallback() {
                        @Override
                        public void onCompleted(GraphUser user, Response response) {
                            if(response != null) {
                                Log.v(GlobalVars.TAG, "Response::" + response);
                                Log.v(GlobalVars.TAG, "Response::" + user.getFirstName() + ":::" + user.getLastName());
                            }
                        }
                    });
                }
            }
        });
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
4

5 回答 5

60

如果您只是ACCESS_TOKEN_REMOVED在日志中看到,请确保您正在打印session.getAccessToken().getToken(). 在上面的示例中,替换

Log.v(GlobalVars.TAG, "Token::" + session.getAccessToken());

Log.v(GlobalVars.TAG, "Token::" + session.getAccessToken().getToken());
于 2015-05-06T13:44:37.757 回答
56

我在过去 2 天面临的同样问题,最后我知道了这一点。Facebook SDK 不会将访问令牌记录到 logcat(以避免通过日志泄漏用户令牌,如描述中所述)。

只需在 FacebookSdk.sdkInitialize() 之后添加这些行,我建议您仅在调试模式下执行此操作:

if (BuildConfig.DEBUG) {
    FacebookSdk.setIsDebugEnabled(true);
    FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
}
于 2015-07-24T09:34:04.743 回答
1

您必须在 Firebase 控制台上启用 facebook 登录并添加 facebook 应用程序 ID 和应用程序密钥,它应该可以正常工作

于 2017-02-10T09:10:43.823 回答
0

我遇到了同样的问题:/

您可以检查:

  1. appId 正确吗?
  2. keyhash 是否在 Facebook 应用中心注册?
  3. 应用名称空间/包名称是否与您的清单文件匹配?(在脸书应用中心)
  4. 应用程序是实时的吗?

如果一切正常,我真的不知道如何帮助你......

于 2014-04-26T00:18:48.087 回答
-3

我检查了费尔南多说的所有项目并添加了它

Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);

我不知道最后一行是否解决了问题,或者它是否是随机的。

我正在为 Xamarin 使用 Facebook Android SDK 3.17

来自阿根廷的问候埃尔南 www.hernanzaldivar.com

于 2014-12-02T05:11:54.600 回答