在我的一个应用程序中,我需要从Facebook获取数据…我是这样做的:
我已经创建了应用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");
}
我看到很多人给出了困难的答案,通过我解决我的问题的答案只是去项目/android文件夹/应用程序使用终端,这是你调试的地方。Keystore文件为
keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64
复制粘贴这个命令,替换你的项目/android/app/build.gradle中的别名和密码
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey' <---- alias
keyPassword 'android' <---- password
}
如果你遇到了这个问题,把这个键输入到你的developer.facebook.com:
然后确保你的应用在developer.facebook.com上是活跃的。
这个绿色圆圈表示应用程序是活的:
如果不是,那么按照以下两个步骤让你的应用上线:
步骤1进入应用程序→设置→添加“联系邮箱”,选择“保存更改”。
步骤2进入App Review选项,确保该选项为Yes。我加了一张截图:
注意:如果你想复制hashkey,请检查LogCat中的BlueServiceQueue。
下面的代码将为您提供Facebook的散列,但您必须遵循以下步骤才能获得发布候选散列。
Copy and paste this code in your main activity
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) {
}
Generate a signed APK file.
Connect your phone to a laptop and make sure it stays connected.
Install and run the APK file in your phone by manually moving the release APK to your phone.
Now look at Android LogCat (use filter KeyHash:). You should see your release hash key for Facebook. Simply copy and paste it in your https://developers.facebook.com/apps. It's under settings.
Now you can test the app it should work perfectly well.
您必须创建两个键散列,一个用于调试,另一个用于发布。
对于Debug键哈希:
在OS X上运行:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
在Windows上运行:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64
调试键哈希源代码
对于Release键哈希:
在OS X上,运行(将<>之间的值替换为您的值):
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
在Windows上,使用(将<>之间的值替换为您的值):
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
释放键哈希源代码