Android Facebook身份验证总是提供关闭的\u登录\u失败的会话
我正在尝试在我的应用程序中实现facebook。我已经做过几次了,没有任何问题。然而,这次我无法找出错误背后的原因 会话状态始终表示已关闭\u登录\u失败。我已经浏览了各种SO链接,这些链接回答了这个问题,但都谈到缺少API键,Android Facebook身份验证总是提供关闭的\u登录\u失败的会话,android,facebook,android-facebook,Android,Facebook,Android Facebook,我正在尝试在我的应用程序中实现facebook。我已经做过几次了,没有任何问题。然而,这次我无法找出错误背后的原因 会话状态始终表示已关闭\u登录\u失败。我已经浏览了各种SO链接,这些链接回答了这个问题,但都谈到缺少API键,launchmode我的活动是singleinstance或worng/mis match key散列 但我必须说,我已经检查了所有这些问题,它们似乎不是问题所在 我试过: try { PackageInfo info = getActivity().ge
launchmode
我的活动是singleinstance
或worng/mis match key散列
但我必须说,我已经检查了所有这些问题,它们似乎不是问题所在
我试过:
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" />
我被困在过去的30天里。谁来帮忙。请务必让我知道我这边的任何细节是否有帮助。
提前感谢。您能将尝试连接到Facebook时在logcat中遇到的完整步骤和错误粘贴到此处吗
如果您的Facebook应用程序处于开发模式,并且您尝试使用Facebook登录,但密钥哈希不匹配,则您正在使用的apk中的密钥哈希将与Facebook消息一起显示在Logcat中。在这之后,你可以将它粘贴到你的Facebook应用程序仪表板配置中,看看它现在是否工作。wooow,终于解决了它。除非我创建了一个全新的项目,否则我不可能弄明白。我遵循了facebook themseleves提供的指南,它实际上引导我找到了解决方案 问题是,我已经将Facebbok作为一个模块导入,并将其添加到我的
build.gradle
as中的模块依赖项中
compile':facebook'
鉴于文件明确指出
您可能需要添加com.facebook.android:facebook android sdk:以构建.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帮了我的忙。谢谢:)如果您关闭\u登录\u失败,那么您的Session.StatusCallback应该会附加一个异常对象。记录该异常并查看其内容。另外,发布打开会话的代码。