我正在开发一款Android应用程序,我希望在其中整合Facebook发布功能.我下载了Facebook-Android SDK,我在那里得到了readme.md(文本文件),其中提到了生成Android的密钥哈希.我该如何生成它?
我真的遇到了Facebook哈希密钥问题.我在Eclipse中生成它..证明:

然后我去了https://developers.facebook.com/并注册了一个新的应用程序.

最后我将我的hashkey设置为Facebook开发人员的设置:

但不管我做什么我一直得到相同的错误日志:"密钥哈希B5dWUEYfZJL/........... jyA =与任何存储的密钥哈希值不匹配"
有人知道我做错了什么或如何解决这个问题?如果我在自己的应用程序中使用HelloFacebookSample中的id和名称,一切正常.所以它与我最有可能设置的密钥哈希,id或名称有关.
谢谢,Yenthe
脸书警报:
示例应用 (ID ***************) 似乎违反了我们的平台政策,在 Facebook 上创造了负面体验。如果您不进行更改以使您的应用符合规定,我们将被迫对您的应用进行限制。
我的电子邮件收件箱:
在努力为每个人创造出色的平台体验的过程中,我们要求开发人员确保他们构建的应用程序符合我们的平台政策。您的应用示例应用 (AppId: ***************) 不符合以下规定:
平台政策 8.1:验证您是否正确集成了登录。您的应用程序不应在测试过程中崩溃或挂起。
在登录期间,您的 Android 应用程序崩溃或过度挂起,为尝试使用您的应用程序的人们带来了糟糕的体验。为确保此流程顺利运行,请检查您是否已正确集成 Facebook 登录。我们建议您在所有集成上测试登录。如果您还没有这样做,请:
依赖:
implementation 'com.facebook.android:facebook-login:[5,6)'
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml:
<activity android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
Run Code Online (Sandbox Code Playgroud)
onCreate():
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.act_login);
callbackManager = CallbackManager.Factory.create();
fb_login_button = findViewById(R.id.fb_login_button);
fb_login_button.setReadPermissions(Arrays.asList(EMAIL));
init();
}
Run Code Online (Sandbox Code Playgroud)
按钮点击:
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email"));
facebookCallBack();
Run Code Online (Sandbox Code Playgroud)
facebookCallBack() 方法:
private void facebookCallBack() {
fb_login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
//AccessToken accessToken = loginResult.getAccessToken();
getUserDetails(loginResult); …Run Code Online (Sandbox Code Playgroud) 我正在使用我的Android应用程序进行Facebook登录集成.当我登录时,它会向我显示"您的应用程序已禁用Oauth客户端流程"的消息.
我的代码是这样的:
package com.example.jiffy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.widget.TextView;
import com.facebook.*;
import com.facebook.Session.NewPermissionsRequest;
import com.facebook.Session.OpenRequest;
import com.facebook.Session.StatusCallback;
import com.facebook.model.*;
public class JiffyFacebookLoginActivity extends Activity implements
StatusCallback{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OpenRequest open = new OpenRequest(this);
open.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
open.setPermissions(Arrays.asList(new String[]{"email"}));
open.setCallback(this);
Session s = new Session(this);
s.openForPublish(open);
}
@Override
public void call(Session session, SessionState state, Exception
exception) {
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent …Run Code Online (Sandbox Code Playgroud)