web-dev-qa-db-ja.com

AccessTokenトークン:FacebookのACCESS_TOKEN_REMOVED 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);
}
38
user2695306

ログに_ACCESS_TOKEN_REMOVED_と表示されている場合は、session.getAccessToken().getToken()を出力していることを確認してください。上記の例では、

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

_Log.v(GlobalVars.TAG, "Token::" + session.getAccessToken().getToken());
_
48
emidander

私が最後の2日間から直面していたのと同じ問題、そして最終的に私はこれを知るようになります。 Facebook SDKは、アクセストークンをlogcatに記録しません(説明で述べたように、ログを介してユーザートークンが漏洩するのを防ぐため)。

FacebookSdk.sdkInitialize()の後にこれらの行を追加するだけで、デバッグモードでのみこれを行うことをお勧めします。

if (BuildConfig.DEBUG) {
    FacebookSdk.setIsDebugEnabled(true);
    FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
}
43

私は同じ問題を取りました:/

確認してもいい:

  1. AppIdは正しいですか?
  2. Facebookのアプリセンターにキーハッシュが登録されましたか?
  3. アプリの名前空間/パッケージ名はマニフェストファイルと一致しますか? (Facebookアプリセンターで)
  4. アプリケーションはライブですか?

すべてが正しい場合、私はあなたを助ける方法を本当に知りません...

0

Firebase ConsoleでFacebookサインインを有効にし、FacebookアプリIDとアプリシークレットキーを追加する必要があります。

0
Nivil Boban