有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java facebook会话未打开

我正在尝试将适用于安卓的facebook sdk 3.0添加到我的应用程序中

我正在尝试使用该功能登录

OpenSessionWithAllowLoginUI(boolean allowLoginUI)

当会话状态更改功能时

SessionStateChanged(session, state, exception)

被称为。下面给出了这些函数

 public void OpenSessionWithAllowLoginUI(boolean allowLoginUI)
    {

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

public void SessionStateChanged(Session session, SessionState state, Exception exception)
{
    switch (state)
    {
        case OPENED:
              if (exception == null)
              {
                  facebook = new Facebook("6346513133546");
              }

            break;

        case CLOSED:
        case CLOSED_LOGIN_FAILED:
            Session.getActiveSession().closeAndClearTokenInformation();
            facebook = null;
            break;

        default:
            break;
    }
}

调用函数时,会话状态更改两次。首先,它将会话状态显示为“打开”,然后在登录并单击“确定”进入权限弹出窗口后,会话状态变为“关闭\登录\失败”。会话状态从未“打开”,我得到以下异常

remote_app_id does not match stored id

谁能告诉我我做错了什么


共 (2) 个答案

  1. # 1 楼答案

    问题是我没有给出正确的密钥散列。我使用keytool -exportcert -alias androiddebugkey -keystore .android/debug.keystore | openssl sha1 -binary | openssl base64生成了密钥散列,它工作了

  2. # 2 楼答案

    您能否验证Android应用程序上的应用程序id与应用程序仪表板上的应用程序id完全相同(https://developers.facebook.com/apps)? 还要确保“原生Android应用程序”有一个绿色复选标记,启用“Facebook登录”,并添加您的密钥哈希