Токен AccessToken:ACCESS_TOKEN_REMOVED в Facebook Android SDK

Я использую 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);
}

person user2695306    schedule 19.08.2013    source источник
comment
SDK не будет напрямую регистрировать ваш токен доступа, поэтому вы видите ACCESS_TOKEN_REMOVED. Вы видите ошибку в своем запросе?   -  person Ming Li    schedule 19.08.2013
comment
@MingLi Я вижу эту ошибку, когда выполняется метод call. Пожалуйста, помогите мне, почему это так?   -  person user2695306    schedule 21.08.2013
comment
Вам не нужно проверять состояние == SessionState.CREATED_TOKEN_LOADED, на самом деле это неправильная проверка. Достаточно просто session.isOpened(). Мой предыдущий комментарий относится к тому, что SDK НЕ будет регистрировать ваш токен доступа в logcat в целях безопасности, поэтому вы видите ACCESS_TOKEN_REMOVED (а не настоящий токен доступа).   -  person Ming Li    schedule 21.08.2013
comment
но как реализация узнает, что пользователь пытается перенаправить вывод в Logcat? В приведенном выше утверждении нет смысла.   -  person Ankur Gautam    schedule 25.01.2014
comment
сеанс.getAccessToken()   -  person Shereef Marzouk    schedule 15.05.2014


Ответы (5)


Если вы видите только ACCESS_TOKEN_REMOVED в своем журнале, убедитесь, что вы печатаете session.getAccessToken().getToken(). В приведенном выше примере замените

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

с

Log.v(GlobalVars.TAG, "Token::" + session.getAccessToken().getToken());
person emidander    schedule 06.05.2015
comment
Это должно быть отмечено как правильный ответ. Facebook не позволяет разработчикам напрямую регистрировать session.getAccessToken, потому что это может привести к утечке. Любой, кто сталкивается с той же проблемой, также должен проверить это для получения дополнительной информации: http://stackoverflow.com/a/29544390/2754871 - person modu; 28.10.2015

Та же проблема, с которой я столкнулся за последние 2 дня, и, наконец, я узнаю об этом. Facebook SDK не будет регистрировать токены доступа в logcat (чтобы избежать утечки токенов пользователей через журнал, как указано в описании).

Просто добавьте эти строки после FacebookSdk.sdkInitialize(), я бы рекомендовал вам делать это только в режиме отладки:

if (BuildConfig.DEBUG) {
    FacebookSdk.setIsDebugEnabled(true);
    FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
}
person Ravinder Bhandari    schedule 24.07.2015
comment
Если я опубликую приложение в магазине игр, это будет работать или нет? - person Chirag Savsani; 09.02.2016
comment
@ChiragSavsani это точно сработает, как и в моем случае :) - person Ravinder Bhandari; 10.02.2016
comment
В порядке. Спасибо за помощь. - person Chirag Savsani; 10.02.2016
comment
@RavinderBhandari эй, я использую facebook sdk 4+ в студии Android, но я получаю следующий ответ при входе в систему. Результат ................................ Токен AccessToken: ACCESS_TOKEN_REMOVED - person Nikhil Singh; 16.02.2016
comment
Я думаю, для этого и нужен ответ :) - person Amit Hooda; 05.03.2018

Вы должны включить вход в facebook на консоли Firebase и добавить идентификатор приложения facebook и секретный ключ приложения, и он должен работать нормально.

person Nivil Boban    schedule 10.02.2017

Я столкнулся с той же проблемой :/

Ты можешь проверить:

  1. Правильно ли указан appId?
  2. Был ли keyhash зарегистрирован в центре приложений facebook?
  3. Соответствует ли имя пространства имен/пакета приложения вашему файлу манифеста? (в центре приложений фейсбука)
  4. Приложение живое?

Если все в порядке, я действительно не знаю, как вам помочь...

person Fernando Martínez    schedule 26.04.2014

Я проверил все пункты, которые сказал Фернандо, и добавил их.

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

Я не знаю, была ли эта последняя строка тем, что решила проблему, или это что-то случайное.

Я использую Facebook Android SDK 3.17 для Xamarin.

Привет из Аргентины Эрнан www.hernanzaldivar.com

person Vackup    schedule 02.12.2014