尝试通过 Android 应用分享时,Facebook SDK 出现应用名称不匹配的问题

Facebook SDK issues with app name mismatch while trying to share via Android app

我在将 Facebook sdks 与我的 android 应用程序集成方面遇到了困难。我只想利用sdk的共享功能。

我收到以下错误:

我目前将 gradle 配置为 编译 'com.facebook.android:facebook-android-sdk:3.21.1'

String.xml

 <string name="app_name">TestApp</string>
 <string name="facebook_app_id">123456789</string>

在我的 AndroidManifest 中:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
   <application
        android:allowBackup="true"
        android:icon="@drawable/mtr_icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:name="com.test.Application"
        android:hardwareAccelerated="true">



    <activity
        android:name="com.test.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    <activity android:name="com.facebook.LoginActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:label="@string/app_name" />

    </application>

</manifest>

分享代码:

  // Publish the post using the Share Dialog
 FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(_activity)
.setApplicationName("TestApp")
.build();

在实际的 Facebook 控制面板中:

 - Google Play Package Name = com.test
 - Class Name = com.test.MainActivity
 - Display Name = TestApp
 - App ID = 123456789
 - Also added the keyHashes to the keystore that is used to sign the generated apt

注意:TestApp 在 Facebook 仪表板中说明 "This app is in development mode"。

当我 运行 应用程序时,我在尝试共享信息时遇到错误并得到异常:

Error: com.facebook.FacebookException: Failed to authenticate the application because of app name mismatch. Please check the application name configured by the dialog.

  1. 我不知道我做错了什么,因为应用名称 "TestApp" 匹配 Facebook -> 设置下的 "Display Name" -> 显示名称 "TestApp"。我已验证 appId 也相同。
  2. 是否需要发布该 Facebook 应用程序,这就是我遇到问题的原因吗?我只想使用 sdk,以便本机 android 应用程序可以 post 到 Facebook。
  3. 还有什么我没看到的吗。

我按照此处的说明操作:https://developers.facebook.com/docs/android/getting-started#maven

感谢任何建议! 谢谢, 德里克

嘿确认你在 Facebook 仪表板中是否有与你的应用程序包名称相同的包

http://w3facility.org/question/android-facebook-connectivity-fails/

所以我想通了。错误消息具有误导性。如果 Facebook 应用程序尚未 public,则 Facebook 应用程序需要作为 Facebook 角色(管理员、开发人员、测试等)之一的用户登录。

我正在做一个 mobile/cordova 应用程序,使用 FB sdk 并使用 fb 的 shareDialog。

我遇到了同样的错误:由于应用程序名称不匹配,无法对应用程序进行身份验证。请检查对话框配置的应用名称

奇怪的是它在 android 模拟器和浏览器中有效,但在设备上无效。

无论如何,这是我发现的:因为我在 Facebook 开发人员门户中使用我的应用程序的测试版本,所以名称类似于 "MySuperApp - Test1",在我的应用程序代码中,我指的是 "MySuperApp"

一旦我在我的应用程序代码中使用这个名称和“-Test1”,它就开始工作了。

希望对您有所帮助。

尼古拉斯