我正在使用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);
}
答案 0 :(得分:48)
如果您在日志中看到ACCESS_TOKEN_REMOVED
,请确保打印session.getAccessToken().getToken()
。在上面的示例中,替换
Log.v(GlobalVars.TAG, "Token::" + session.getAccessToken());
与
Log.v(GlobalVars.TAG, "Token::" + session.getAccessToken().getToken());
答案 1 :(得分:41)
我在过去2天遇到的同样问题,最后我才知道这一点。 Facebook SDK不会将访问令牌记录到logcat(以避免在解密时通过日志泄漏用户令牌)。
只需在FacebookSdk.sdkInitialize()之后添加这些行,我建议你只在调试模式下执行此操作:
if (BuildConfig.DEBUG) {
FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
}
答案 2 :(得分:0)
我也遇到了同样的问题:/
您可以查看:
如果一切正常,我真的不知道如何帮助你......
答案 3 :(得分:0)
您必须在Firebase控制台上启用Facebook登录并添加Facebook应用ID和应用密钥,它应该可以正常工作
答案 4 :(得分:-3)
我检查了费尔南多所说的所有项目并加上
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
我不知道最后一行是否解决了这个问题,或者它是否是随机的。
我正在使用Facebook Android SDK 3.17 for Xamarin
阿根廷的问候 埃尔南 www.hernanzaldivar.com