Facebook登录返回一个空的访问令牌

时间:2014-03-25 16:50:16

标签: facebook unity3d facebook-login facebook-access-token facebook-unity-sdk

Unity 4.3.3f1

SDK版本5.0.4

构建版本140220.cc3a9c089a2eb9e


您好,我使用Facebook SDK for Unity开发了过去4个月的游戏,自上周五以来我一直在遇到问题。每次我尝试从我的应用程序登录我的应用程序时,方法LoginCallback(FBResult result){}中的Result.Text返回以下字符串:

{"is_logged_in":false,"user_id":"","access_token":"","access_token_expires_at":"01/01/0001 00:00:00"}

因此,由于某种原因,它没有获得user_id,也没有生成在应用程序上使用的正确令牌。

我确保我的程序包名称,类名称和密钥哈希值在Unity SDK上的facebook设置和Facebook上的我的应用程序设置之间匹配,确实如此。

我注意到的一件事可能意味着什么,我不知道类名现在是

com.facebook.unity.FBUnityDeepLinkingActivity

在Unity上的我的Facebook设置上,所以我在Facebook的App设置上将其更改为相同的值。

我按下了Regenerate Android Manifest按钮,这是我的清单,以防它有助于识别问题:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" android:installLocation="preferExternal" android:theme="@android:style/Theme.NoTitleBar" android:versionCode="1" android:versionName="1.0">
  <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
  <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="true">
    <activity android:name="com.facebook.unity.FBUnityPlayerActivity" android:launchMode="singleTask" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:launchMode="singleTask" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    </activity>
    <activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:launchMode="singleTask" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
      <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
    </activity>
    <activity android:name="com.facebook.LoginActivity" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation">
    </activity>
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="\ 1422526867979289" />
    <activity android:name="com.facebook.unity.FBUnityLoginActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
    </activity>
    <activity android:name="com.facebook.unity.FBUnityDeepLinkingActivity" android:exported="true">
    </activity>
  </application>
</manifest>

非常感谢任何帮助,谢谢。

PS:另外,一个简单的问题。有效的清单是哪种?位于:

的那个
Assets/Android/AndroidManifest.xml 

或上的那个:

Assets/Plugins/Android/AndroidManifest.xml

尽管如此,两个清单都与我在这里发布的清单完全相同。感谢。

1 个答案:

答案 0 :(得分:1)

正如开发人员建议的那样,问题实际上是当我添加Keystore以便能够将我的apk上传到Play商店时,Facebook Login停止工作。添加了密钥库,我需要使用keytool处理它,然后将新创建的Keyhash上传到我的Facebook App Acount。

为了将来参考,如果发生类似这样的事情,sdk可以抛出异常或其他东西而不是空数组,那么尝试解决问题会更简单。