警告:无会话请求需要令牌但缺少应用程序ID或客户端令牌

时间:2014-05-18 13:32:04

标签: android facebook

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

有谁知道原因?我的应用正在运行并获得批准(不在谷歌播放)。我也在使用哈希的东西,并在FB应用页面上列出我的主要活动和包名。

6 个答案:

答案 0 :(得分:2)

我认为您用来分享的Facebook帐户在您的脸书应用中没有任何作用。转到您的应用开发者Facebook控制台并查看角色。或者将状态和评论设置为开启但我认为如果您的应用在Google Play或App Store上无法使用,那么这不是一个好的解决方案

答案 1 :(得分: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());
      }
  }

答案 2 :(得分:1)

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" />

答案 3 :(得分:1)

您收到此错误日志是因为您的会话已过期,并且您需要再次呼叫登录,它会使用用户授权的帐户自动登录,并且不会让用户接受应用程序的公开权限。

答案 4 :(得分:1)

您收到此错误是因为您可能未在manifest.xml中声明您的应用程序ID,或者您未在&#34; developers.facebook.com &#34;上正确注册您的应用程序。

答案 5 :(得分:0)

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

希望这有助于某人:)。