Тогл AccessToken: ACCESS_TOKEN_REMOVED в Facebook Android SDK
Я использую SDK для Facebook, но хочу создать фотоальбом, но я получаю 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);
}
Ответы
Ответ 1
Если вы видите ACCESS_TOKEN_REMOVED
в своем журнале, убедитесь, что вы печатаете session.getAccessToken().getToken()
. В приведенном выше примере замените
Log.v(GlobalVars.TAG, "Token::" + session.getAccessToken());
с
Log.v(GlobalVars.TAG, "Token::" + session.getAccessToken().getToken());
Ответ 2
Такая же проблема, с которой я столкнулся последние 2 дня, и, наконец, я узнаю об этом. Facebook SDK не будет регистрировать токены доступа для логарифма (чтобы избежать утечки токенов пользователя через журнал, как сказано в decsription).
Просто добавьте эти строки после FacebookSdk.sdkInitialize(), я бы рекомендовал вам делать это только в режиме отладки:
if (BuildConfig.DEBUG) {
FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
}
Ответ 3
У меня была та же проблема:/
Вы можете проверить:
- Правильно ли appId?
- Был ли keyhash зарегистрирован в центре приложений facebook?
- Соответствует ли пространство имен приложений/имени пакета вашему файлу манифеста? (в центре приложения facebook).
- Работает ли приложение?
Если все правильно, я действительно не знаю, как вам помочь...
Ответ 4
Вам нужно включить подписку на facebook в Firebase Console и добавить секретный ключ для приложения facebook и секретный ключ приложения, и он должен работать нормально
Ответ 5
Я проверил все элементы, которые сказал Фернандо, и добавьте их
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
Я не знаю, была ли эта последняя строка решена проблема или если она была случайной.
Я использую Android Android SDK 3.17 для Xamarin
Привет из Аргентины
Hernan
www.hernanzaldivar.com