【问题标题】:Linkedin Android SDK - Unable to connect to API (INVALID_REQUEST)Linkedin Android SDK - 无法连接到 API (INVALID_REQUEST)
【发布时间】:2018-07-19 20:01:12
【问题描述】:

我在连接到 Linkedin API 时遇到了一些问题。

我正在关注这个https://developer.linkedin.com/docs/android-sdk 和这个https://developer.linkedin.com/docs/android-sdk-auth,但我收到了这个错误代码:

{
"errorCode": "INVALID_REQUEST",
"errorMessage": "either bundle id or package name \/ hash are invalid, unknown, malformed"
}

到目前为止,我的实现非常简单:

public void shareOnLinkedin() {

    AuthListener authListener = new AuthListener() {
        @Override
        public void onAuthSuccess() {
            Log.d(TAG, "Success");
        }

        @Override
        public void onAuthError(LIAuthError error) {
            Log.d(TAG, error.toString());
        }
    };

    LISessionManager
            .getInstance(getApplicationContext())
            .init(ColectionDetailActivity.this, buildScope(), authListener, true);
}

private static Scope buildScope() {
    return Scope.build(Scope.R_BASICPROFILE, Scope.W_SHARE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    ...

    try {
        LISessionManager.getInstance(getApplicationContext())
                .onActivityResult(this, requestCode, resultCode, data);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

【问题讨论】:

  • 可能是系统时间问题..检查你的手机时间..
  • 这里有同样的问题,无法让它工作,也找不到任何有用的东西:-(。

标签: java android linkedin


【解决方案1】:

确保您已在 LinkedIn 开发者控制台中正确添加了所有软件包哈希。

Generating a debug key hash value


它在 Mobile 下,看起来像这样,

将使用 LinkedIn SDK 的应用程序包:com.mypackage.app

生成的包哈希:/i17lYLZpSffk1wdD+KzlRJroZU=

【讨论】:

  • 这是根据文档完成的,但仍然无法正确连接。
  • 确保添加所有密钥哈希:团队中所有开发人员的 debug.keystore 以及您的发布密钥库。只需确保您的应用使用已添加到 LinkedIn 的开发者控制台的相同密钥库(已生成)进行签名。
  • 感谢您的回复。其实我已经根据文档添加了has和包名,这实际上是你对facebook SDK所做的相同配置步骤,并且它使用相同的PackageName和Hash,但我仍然得到那个错误。跨度>
  • 您是否也将onActivityResult 上的值转发到LISessionManageronActivityResult 上?
  • @Heyyou 是的,我浏览了它们,但看起来一切正常。作为更新,我创建了一个发布版本,其中包含 Facebook SDK 和 Linkedin SDK 的发布哈希,它在 Facebook 中继续工作,但在 Linkedin 中没有,所以这几乎是一条死胡同。
【解决方案2】:

我遇到了同样的问题,在实现 fb 登录后,我开始实现 LinkedIn 登录并添加了相同的哈希值,我为 fb 登录得到了它,但它不起作用。

为了解决这个问题,我执行了以下操作。

对于发布哈希:

  1. 在您的发布 apk 上运行此命令以打印所有证书

    keytool -list -printcert -jarfile <your apk path>
    
  2. 复制 SHA1 值转到 http://tomeko.net/online_tools/hex_to_base64.php 并将您的 SHA1 十六进制值转换为 Base64

  3. 我得到的值与我从常规得到的值不同 释放密钥库命令。

在仪表板的链接中添加了哈希并开始工作。

注意:如果有人知道为什么常规密钥库方法会失败以及为什么这个方法有效,请告诉我。

这是用于调试哈希:

上述方法也适用于调试 apk。但这就是我获得调试 apk 哈希的方式,它与给定的密钥库命令不同。

private void getTokenInfo() {

    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "your package name here",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());

            Logger.d("packageName", info.packageName);
            Logger.d("hash", Base64.encodeToString(md.digest(), Base64.NO_WRAP));

        }
    } catch (PackageManager.NameNotFoundException e) {
        Logger.e(e);
    } catch (NoSuchAlgorithmException e) {
        Logger.e(e);
    }
}

这对我有用,但我还不明白这里发生了什么。

【讨论】:

    猜你喜欢
    • 2016-05-08
    • 2012-10-17
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多