发布的应用程序上的Facebook参数无效

时间:2014-03-15 15:51:22

标签: android facebook

从eclipse在设备上运行App时,Facebook集成运行正常,App在此处使用调试密钥进行签名。

但是我现在已经发布了应用程序并收到错误:

"Invalid android-Key parameter. The key ******* does not match and allowed key.

我已将新发布密钥添加到Facebook上的应用设置,并添加了Facebook错误上显示的密钥,如here所述。

这非常令人沮丧,我在使用调试密钥开发应用程序时遇到了这个问题,我将FB错误生成的密钥添加到FB中的应用程序设置并且它有效,但是现在这不起作用:)

PS我知道我有正确的发布密钥,因为我已将其导入谷歌地图应用程序设置并且地图工作正常!

Manifast:

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

我关注FB开发者说明here

我在这里获得了发布密钥:

keytool -list -alias DistributionKeyStoreAlias -keystore "/Users/callanmooneys/Desktop/Android Devolpment/Distributionkeystore" -storepass password -keypass password

任何输入都非常感激,(注意:FB在我开发这个应用程序的过程中一直是痛苦的!)

1 个答案:

答案 0 :(得分:-1)

看来你必须将facebook发生的错误中的密钥添加到你的facebook应用程序设置中。

必须编写来自Facebook活动的电子邮件意图,以捕获以编程方式发送到Facebook的密钥。

一旦我将Facebook错误通过电子邮件发送给自己,我可以正确地从错误中复制密钥并添加到Facebook应用程序上的设置,而不是尝试手动输入它在Android设备上生成错误。

无法从logcat获取此密钥,因为从eclipse运行时使用的是调试密钥库密钥而不是释放密钥。

有没有办法调试已发布的应用程序?

无论如何痛苦,这似乎是一个普遍的问题。

为什么facebook文档没有提到这个?

会节省很多时间。

在onCreate()

     Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState);
 try { 
PackageInfo info = getPackageManager().getPackageInfo( "com.facebook.samples.loginhowto", PackageManager.GET_SIGNATURES); 
for (Signature signature : info.signatures) {
 MessageDigest md = MessageDigest.getInstance("SHA"); 
md.update(signature.toByteArray());
 Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); }
 } catch (NameNotFoundException e) {
....