And*_*oid 178 android facebook
你好,我的一个应用程序,我需要获取fb的数据......我正在这样做..
我已经创建了它成功登录的应用程序ID但在注销后我登录然后它给了我
我在做什么错了?请建议我使用Facebook sdk ...我已经在我的手机中安装了Facebook ...这在运行良好的模拟器中没有安装内置的Facebook应用程序
这是我的代码
if (FB_APP_ID == null) {
Builder alertBuilder = new Builder(this);
alertBuilder.setTitle("Warning");
alertBuilder.setMessage("A Facebook Applicaton ID must be " +
"specified before running this example: see App.java");
alertBuilder.create().show();
}
// Initialize the dispatcher
Dispatcher dispatcher = new Dispatcher(this);
dispatcher.addHandler("login", LoginHandler.class);
dispatcher.addHandler("stream", StreamHandler.class);
dispatcher.addHandler("logout", LogoutHandler.class);
// If a session already exists, render the stream page
// immediately. Otherwise, render the login page.
Session session = Session.restore(this);
if (session != null) {
dispatcher.runHandler("stream");
}
else {
dispatcher.runHandler("login");
}
Run Code Online (Sandbox Code Playgroud)
Mah*_*rai 264
生成哈希键是错误的.您可以使用两个步骤获取哈希键.一个是通过命令提示符.另一个是通过编码.通过命令提示符仅在第一次处理时使用哈希键.我不知道原因.我也遇到了同样的问题.所以我通过编程方式尝试了.
请遵循以下步骤:
粘贴以下代码oncreate()
.
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.example.packagename",
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) {
}
catch (NoSuchAlgorithmException e) {
}
Run Code Online (Sandbox Code Playgroud)
在上面的编码中使用您的包名称修改"com.example.packagename"(您可能会在Android Manifest文件中找到您的包名称).
运行您的应用程序 转到粘贴上述代码的活动.在logcat中搜索"KeyHash".您可能会找到一个密钥哈希.复制密钥哈希并转到Facebook应用程序仪表板页面.转到设置并输入下图中的详细信息.
完成上述步骤后.重新启动应用程序,您现在可以登录到Facebook.有关密钥哈希检查链接的更多详细信息
如果在设置页面中添加错误信息,则意味着会出现一些错误.所以在那里使用正确的信息.而且,如果公共(除您之外)需要使用您的应用程序,则意味着您需要启用该权限oncreate()
.
小智 157
在打开应用程序签名部分谷歌游戏控制台,并获得SHA1的应用程序签名证书,不是将其转换为BASE64使用该工具,例如:http://tomeko.net/online_tools/hex_to_base64.php?lang=en
Arp*_*tel 114
如果您遇到此问题,请将此密钥放入developer.facebook.com
然后确保你的应用程序是住在
此绿色圆圈表示应用已上线
如果不是,请按照以下两个步骤使您的应用程序生效
步骤1转到您的应用程序 - > setting =>并添加联系人电子邮件并应用保存更改
Setp 2然后转到App Review选项并确保此切换为是我添加了屏幕截图
注意:如果要复制hashkey,请检查Logcat中的BlueServiceQueue.
Aka*_*iya 71
我遇到了同样的问题.我确信这是由于非常小的故障,是的,它是!!!! 我找到了解决方案.
在我的计算机中生成调试哈希密钥时,我输入了我的系统密码.但是密码应该是以下内容 -
输入密钥库密码:"android"
这是我的唯一问题.
-----要生成Debug key hash,请使用以下命令 -
keytool -exportcert -alias androiddebugkey -keystore~/.android/debug.keystore | openssl sha1 -binary | openssl base64
输入密钥库密码:'android'
-----要生成释放密钥哈希,请使用此命令 -
keytool -exportcert -alias"密钥库的别名"-keystore"签署应用程序时密钥库的路径"| openssl sha1 -binary | openssl base64
执行此命令后,请提供密钥库密码.
小智 21
我遇到了同样的问题.我对这种奇怪行为的可能原因做了一个简短的研究,我发现了以下内容:
在第一次执行新的Facebook应用程序时,即使您没有指定任何键哈希,它也将允许连接/登录.
对我来说,Facebook提供的教程没有生成正确的密钥哈希,因为它提供了错误的配置.执行时:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64
Run Code Online (Sandbox Code Playgroud)确保检查所有属性 - HOMEPATH
密钥库的存在,等等.也许你还必须提供密码.
生成正确配置的是@Mahendran建议的解决方案.
此外,如果您看到最初发布的错误(http://i.stack.imgur.com/58q3v.png),则很可能您在屏幕上看到的密钥哈希是真实的.如果没有其他工作,请尝试在Facebook中输入.
我得到了所有这些结果:Windows 7 64位版本,Android Studio 1.2.2,JDK 7.
JP *_*ura 12
根据Facebook登录Android,您必须提供Key Hash值.为了获得它,您将需要用于签署您的应用程序的密钥.
keytool \
-exportcert \
-alias YourKeyAlias \
-storepass YourStoreKeyPassword \
-keystore PathToYourKeyStoreFile | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)
Saj*_*Zeb 12
我是这样解决这个问题的:
首先,您必须获得 SHA-1 值。为此,有两种方法。
或者
keytool -list -v -keystore keystore_file_name.jks -alias key0
Run Code Online (Sandbox Code Playgroud)
像这样将SHA-1值复制到剪贴板:
CD:A1:EA:A3:5C:5C:68:FB:FA:0A:6B:E5:5A:72:64:DD:26:8D:44:84
Run Code Online (Sandbox Code Playgroud)
并打开十六进制 -> Base64 字符串解码器将您的 SHA-1 值转换为 Base64。
这正是 Facebook 所需要的。
获取生成的哈希“ ********************= ”并将密钥哈希复制到 Facebook 应用程序。
您必须为Debug创建两个键哈希,为Release释放一个哈希.
对于Debug键哈希:
在OS X上,运行:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)
在Windows上,运行:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64
Run Code Online (Sandbox Code Playgroud)
对于Release key hash:
在OS X上,运行:( 用<>替换<>之间的值)
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)
在Windows上,使用:( 将<>替换为您的值)
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)
我尝试了上述所有内容,并没有对我的客户有任何帮助!比我的客户记得他在他的设备上安装了Facebook App.删除后,登录工作完美.该hashkey已被更改,我已使用错误中的密钥(如上所述)替换了Facebook开发者控制台上的旧哈希键,并且它可以正常工作!Facebook应用程序本身可能是问题所在,所以你最好在安装了Facebook应用程序的设备上以及未安装Facebook应用程序的设备上解决这个问题并处理这两种情况.
小智 7
尽管这个问题已经以很多有用的方式得到了回答,但我只是想补充一点,当我按照 Rafal Maleks 的回答(使用 Google Play Console 上的哈希键)时,我无法使用应用程序签名 SHA1 密钥,但仍然得到了通用的来自 Facebook 的错误。相反,我需要使用上传证书部分(位于 Google Play Console 上的应用签名部分下方)中的 SHA-1 证书指纹。否则过程相同;
从Google Play 管理中心的“上传证书”部分复制 SHA-1 证书指纹
使用以下命令转换 SHA-1:http://tomeko.net/online_tools/hex_to_base64.php并复制输出 (base64)
将其粘贴到developer.facebook.com 上的Key Hashes 输入中并保存更改。
希望这个答案不是多余的,并且可以帮助那些无法使用应用程序签名证书的人。
现在 Facebook 登录可以在我的应用程序中以调试和发布模式运行。
归档时间: |
|
查看次数: |
197553 次 |
最近记录: |