2

我在使用 FB API 时遇到问题。

星期五早上,我已经完成了设置,它运行良好,我能够将它安装在我的 2 个不同的设备上,并且在两个设备上都可以正常工作。

周日,当我想向我的朋友展示我的应用程序时,在安装了 FB 应用程序的设备上与 Facebook 的连接崩溃了,今天我第一次使用 API 3.0 看到我的应用程序被错误地配置为 Facebook 登录。

直到今天我才接触代码,今天我唯一改变的是调用我发布带有标题的图像的地方,所以我根本没有接触登录部分:

if (MyGlobals.INSTANCE.isOnline(getSherlockActivity())) {
if (txt.getTag() == faceLoggedIn) {
 if (session.isOpened()) {
  Log.w("ss", "Session Allready Open");
  onClickLogout();
  updateSocialView(txt, img);
  // txt.setText("Log To Facebook");
  // txt.setTag(faceLoggedOut);
  // img.setImageResource(R.drawable.facebook_icon_gray);
  // MyGlobals.INSTANCE.f_socialsSet = false;
 }
} else if (txt.getTag() == faceLoggedOut) {
 if (!session.isOpened() && !session.isClosed()) {
  Log.w("Session is not opend", "Session is not closed");
  session.openForRead(new Session.OpenRequest(getActivity()).setCallback(MyGlobals.INSTANCE.statusCallback));
 } else {
  Session.openActiveSession(getActivity(), true, MyGlobals.INSTANCE.statusCallback);
  Log.w("Open Active Session", "Status Callback");
  updateSocialView(txt, img);
 }
 updateSocialView(txt, img);
 // txt.setText("Log To Facebook");
 // txt.setTag(faceLoggedOut);
 // img.setImageResource(R.drawable.facebook_icon_gray);
 // MyGlobals.INSTANCE.f_socialsSet = true;
}

那么什么会导致这种错误配置呢?App怎么可能有一天能用,然后就不能用了?我确实从 facebook 中删除了该应用程序以测试它在首次应用程序下载/登录时的行为,但我再次没有更改 FB 平台上的应用程序首选项。

如果设备上没有 FB 应用程序,一切正常,webview 出现,您登录,您发布到 FB,一切就绪。

当设置了 FB 应用程序时,我完全困惑它有什么问题?

请解释。肿瘤坏死因子。

4

1 回答 1

5

当您使用默认的 android 调试密钥进行签名时,如果 a) 密钥过期并且您的 IDE 自动创建一个新密钥或 b) 您在另一台机器上运行/构建应用程序(具有不同的密钥哈希),则该密钥哈希可能会更改从您的仪表板上列出的那一项)。

TL;DR:您的密钥哈希不匹配

要解决此问题,请在此处阅读我们的文档 (https://developers.facebook.com/docs/mobile/android/build/#sig)。有两种方法可以检索您的密钥哈希。每次您使用不同的密钥对应用程序进行签名时(无论是因为您使用的是另一台计算机,还是因为您的旧调试密钥已过期),您都需要将其添加到仪表板。当您最终将您的应用程序上传到 Google Play 时,您必须创建自己的密钥库文件来对其进行签名,并且当您这样做时,不要忘记将该密钥库文件的密钥哈希添加到您的仪表板。

于 2012-10-29T19:41:17.970 回答