我正试图用这段代码从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}
如何解决此错误?
-
您是否在应用程序设置中输入了密钥散列?使用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)); }
-
双击"应用程序设置"中的程序包名称。
更新(另一种可能的解决方案)
覆盖onActivityResult
并调用-
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);