我正在尝试使用此代码从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}
如何解决此错误?
答案 0 :(得分:2)
您是否在应用设置中输入了 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));
}
仔细检查应用设置中的包名称。
更新(另一种可能的解决方案)
覆盖onActivityResult
并致电 -
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);