我正在尝试在我的应用中实现Facebook。我做过几次没有任何问题。但是这次我无法弄清楚错误背后的原因。
会话状态始终显示为CLOSED_LOGIN_FAILED。我已经找到了各种各样的SO链接来回答这个问题,但所有人都在讨论我的活动launchmode
或者错误匹配密钥哈希值singleinstance
缺少的API密钥。
但我必须说,我已经检查了所有这些,但它们似乎不是问题。
我试过了:
try {
PackageInfo info = getActivity().getPackageManager().getPackageInfo(
"com.jam.app",
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 (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
获取哈希密钥但徒劳无功。我也通过命令提示符尝试了keytool方式。
我的清单文件包含API密钥以及以下内容。
的Manifest.xml
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id" />
<activity
android:name="com.facebook.LoginActivity"
android:screenOrientation="portrait" />
我被困在最后的3天。有人请帮忙。如果我的最终细节有帮助,请告诉我。 提前谢谢。
答案 0 :(得分:2)
在尝试连接到Facebook时,您可以在此处粘贴您在logcat中获得的完整步骤和错误吗?
如果您的Facebook应用程序处于开发模式并且您尝试使用Facebook登录,但Key Hash不匹配,则您正在使用的apk中的Key Hash会在Logcat中与Facebook消息一起显示。在此之后,您只需将其粘贴到Facebook Application Dashboard配置中,然后查看它是否正常工作。
答案 1 :(得分:1)
哇哇,终于解决了。除非我创建了一个全新的项目,否则无法理解。我按照facebook themseleves给出的这个facebook set-up指南,实际上引导我找到解决方案。
问题是,我已将Facebbok导入为模块并将其添加到build.gradle
中的模块依赖项
compile ':facebook'
而文件明确指出,
您可能需要将 com.facebook.android:facebook-android-sdk:添加到build.gradle依赖项并重建。
,build.gradle现在看起来像这样
compile 'com.facebook.android:facebook-android-sdk:3.21.1'
和宾果它有效。 :)
除了上述内容之外,我们使用以下方法生成哈希键非常重要:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.example.webwerks.facebookintegartiondemoapp",
PackageManager.GET_SIGNATURES);
for (android.content.pm.Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
向#Pratik致信帮助我。谢谢:))