【问题标题】:Warning: Sessionless Request needs token but missing either application ID or client token警告:无会话请求需要令牌,但缺少应用程序 ID 或客户端令牌
【发布时间】:2014-05-18 13:32:04
【问题描述】:

使用适用于 Android 的 FB SDK 有时会在 Logcat 中引发错误。

有人知道原因吗?我的应用程序正在运行并获得批准(不在 google play 上)。我也在使用哈希值,并且在 FB 应用页面上列出了我的主要活动和包名称。

【问题讨论】:

  • 这通常意味着您将一个空会话传递给请求。是否存在您正在发出图形请求但尚未初始化会话的情况?
  • 试试这个简单的修复,它对我有用:stackoverflow.com/a/21329790/771922
  • 我也面临类似的问题。
  • 类似问题,有解决办法吗?
  • 面临同样的问题。我正在使用 parse.com SDK 和 facebook SDK 来登录 facebook。有人找到解决方案了吗?

标签: android facebook


【解决方案1】:

我认为您用来分享的 facebook 帐户在您的 facebook 应用程序中没有任何作用。转到您的应用程序开发人员 Facebook 控制台并检查角色。或者将状态和审核设置为开启,但如果您的应用在 Google Play 或 App Store 上不可用,我认为这不是一个好的解决方案

【讨论】:

  • 如果应用在 Play 商店中不可用,有什么解决办法吗?
  • @NiteshVerma 即使该应用在应用商店中不可用,您仍然需要添加用于共享其中一个角色的帐户。
【解决方案2】:

您应该在https://developers.facebook.com 的设置中检查您的哈希键 尝试下面的代码来检查并添加正确的 hashkey。 它对我有用!!!

private void getSHAFingerPrint(){
      PackageInfo info;
      try {

          info = getPackageManager().getPackageInfo(
                  "your.package", PackageManager.GET_SIGNATURES);

          for (Signature signature : info.signatures) {
              MessageDigest md;
              md = MessageDigest.getInstance("SHA");
              md.update(signature.toByteArray());
              String something = new String(Base64.encode(md.digest(), 0));
              Log.e("Hash key", something);
              System.out.println("Hash key" + something);
          }

      } catch (NameNotFoundException e1) {
          Log.e("name not found", e1.toString());
      } catch (NoSuchAlgorithmException e) {
          Log.e("no such an algorithm", e.toString());
      } catch (Exception e) {
          Log.e("exception", e.toString());
      }
  }

【讨论】:

    【解决方案3】:

    https://stackoverflow.com/a/4851484/3552317,是一种适用于某些人(和重复问题)的解决方案,这对我有用:

    这对我有用:

           <string name="app_id">999999999999999</string>
            <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/app_id" />
    

    【讨论】:

    【解决方案4】:

    您收到此错误日志是因为您的会话已过期,并且您需要再次调用登录,它会自动使用用户授权的帐户登录,并且不会提示用户接受该应用的公共权限。

    【讨论】:

      【解决方案5】:

      您收到此错误是因为您可能没有在 manifest.xml 中声明您的应用程序 ID,或者您没有在“developers.facebook.com”上正确注册您的应用程序

      【讨论】:

        【解决方案6】:

        我知道这是一个问题,但我只是通过转到 https://developers.facebook.com/apps/[yourappid]/settings/ 并禁用选项 Deep Linking 解决了我的问题。

        希望这可以帮助某人:)。

        【讨论】:

          猜你喜欢
          • 2015-09-01
          • 2021-07-25
          • 1970-01-01
          • 2016-09-17
          • 1970-01-01
          • 2019-07-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多