2013-08-19 11 views
31

Facebook SDKを使用していますが、フォトアルバムを作成したいのですが、セッションでACCESS_TOKEN_REMOVEDを取得しています。AccessTokenトークン:ACCESS_TOKEN_REMOVED in Facebook Android SDK

このセッションで

{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

SDKはアクセストークンを直接記録しないため、ACCESS_TOKEN_REMOVEDが表示されます。あなたのリクエストに間違いがありますか? –

+0

@MingLi 'call'メソッドを実行するとこのエラーが発生します。どうしてそんなに助けてくれますか? – user2695306

+8

"state == SessionState.CREATED_TOKEN_LOADED"をチェックする必要はありませんが、実際は間違っています。ちょうどsession.isOpened()で十分です。私の以前のコメントは、セキュリティ上の理由からSDKがあなたのアクセストークンをlogcatに記録しないということです。実際のアクセストークンではなくACCESS_TOKEN_REMOVEDが表示されています。 –

答えて

0

私は同じ問題を取った:/

あなたがチェックできます。

  1. は正しいのAppIDていますか?
  2. keyhashはFacebookのアプリセンターに登録されましたか?
  3. アプリの名前空間/パッケージ名がマニフェストファイルと一致していますか? (Facebookのアプリケーションセンターにあります)
  4. アプリケーションは公開されていますか?

すべてが正しければ、私は本当にあなたを助ける方法がわからない...

-2

私はフェルナンドが言ったすべての項目をチェックし、それに

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

を追加し、私はかどうかを知りませんこの最後の行は、問題を解決したものか、それが何かランダムなものだった場合です。

あなたはちょうどあなたがsession.getAccessToken().getToken()を印刷していることを確認し、あなたのログにACCESS_TOKEN_REMOVEDを見ている場合は、私はアルゼンチン エルナンからXamarin

挨拶 www.hernanzaldivar.com

40

のためのFacebookのAndroid SDK 3.17を使用しています。上記の例では、私は最後の2日間から直面して、最終的に私はこのことを知ってもらう

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

これは正解とマークする必要があります。 Facebookは、デベロッパーに "session.getAccessToken"を直接ログに記録することを許可していません。リークが発生する可能性があるからです。同じ問題に直面している人は、さらに詳しい情報を調べるべきです:[http://stackoverflow.com/a/29544390/2754871](http://stackoverflow.com/a/29544390/2754871) – modu

33

同じ問題で

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

を交換してください。 Facebook SDKはlogcatへのアクセストークンをログに記録しません(デスクリプションで述べたようにログを介してユーザートークンが漏れないようにする)。

ジャスト(FacebookSdk.sdkInitialize後にこれらの行を追加します)、私はあなたがデバッグモードでのみこれを行うお勧めします:

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

それは動作します!あなたは私を救いました。 –

+0

私がプレイストアにアプリを公開すると、これは動作するかどうか? –

+0

@ChiragSavsaniこれは私の場合にも働いたので確かに動作します:) –

0

あなたは、FacebookがFirebaseコンソールにログインしてFacebookアプリIDを追加有効にする必要がありますし、アプリの秘密鍵は正常に動作するはずです

関連する問題