会话打开但我没有获得访问令牌Android FB SDK 3.0

时间:2013-08-26 19:55:00

标签: android facebook facebook-graph-api facebook-android-sdk facebook-access-token

我正在尝试使用此代码从Facebook会话中检索访问令牌。

Session.openActiveSession(this,true,new Session.StatusCallback()
    {
        @Override
        public void call(Session session, SessionState state, Exception exception) {

            if(state.isOpened())
            if (exception == null)
            {
              Log.v("Token",session.getAccessToken());
              .....

但是我没有获得访问令牌。这是返回的结果

{Session state:OPENED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[basic_info]}, appId:XXXXXXXXXXXXXXXXX}

如何解决此错误?

1 个答案:

答案 0 :(得分:2)

  1. 您是否在应用设置中输入了 keyhash ?使用facebook提供的标准代码生成哈希:

    PackageInfo info = getPackageManager().getPackageInfo("<your_package_name>",  PackageManager.GET_SIGNATURES);
    
    for (Signature signature : info.signatures)
    {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
    
  2. 仔细检查应用设置中的包名称


  3. 更新(另一种可能的解决方案)

    覆盖onActivityResult并致电 -

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