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



我正试图用这段代码从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. 您是否在应用程序设置中输入了密钥散列?使用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. 双击"应用程序设置"中的程序包名称


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

覆盖onActivityResult并调用-

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

最新更新