Java 使用Facebook登录的应用程序不在开发中!它只是加载和关闭-Android Studio
我已经实现了一个应用程序,我已经使用facebook登录到它。应用程序正在运行,没有崩溃,但facebook登录不起作用。当我打开应用程序并单击facebook登录按钮时,它将显示一个进度条,并且它将立即消失,而不做任何操作。我在日志中发现以下错误Java 使用Facebook登录的应用程序不在开发中!它只是加载和关闭-Android Studio,java,android,authentication,facebook-login,Java,Android,Authentication,Facebook Login,我已经实现了一个应用程序,我已经使用facebook登录到它。应用程序正在运行,没有崩溃,但facebook登录不起作用。当我打开应用程序并单击facebook登录按钮时,它将显示一个进度条,并且它将立即消失,而不做任何操作。我在日志中发现以下错误 2019-08-29 12:45:24.290 19304-19328/com.appic.testfbauth E/GraphResponse: { HttpStatus: 400, errorCode: 100,
2019-08-29 12:45:24.290 19304-19328/com.appic.testfbauth
E/GraphResponse:
{
HttpStatus: 400,
errorCode: 100,
subErrorCode: 33,
errorType: GraphMethodException,
errorMessage: Unsupported get request. Object with ID '742177629556035' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api
}
请参阅下面我所做的工作
public类MainActivity扩展了AppCompatActivity{
私人登录按钮登录按钮;
私有CircleImageView CircleImageView;
私有文本视图txtName,txtmail;
私人CallbackManager CallbackManager;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sdkinInitialize(getApplicationContext());
loginButton=findviewbyd(R.id.login_按钮);
circleImageView=findViewById(R.id.profile_pic);
txtName=findviewbyd(R.id.profile\u name);
txtEmail=findviewbyd(R.id.profile\u电子邮件);
checkLoginStatus();
callbackManager=callbackManager.Factory.create();
loginButton.registerCallback(callbackManager,
新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
}
});
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
callbackManager.onActivityResult(请求代码、结果代码、数据);
super.onActivityResult(请求代码、结果代码、数据);
}
AccessTokenTracker tokenTracker=新的AccessTokenTracker(){
@凌驾
受保护的onCurrentAccessTokenChanged无效(AccessToken oldAccessToken、AccessToken currentAccessToken){
如果(currentAccessToken==null){
txtEmail.setText(“”);
txtName.setText(“”);
circleImageView.setImageResource(0);
Toast.makeText(MainActivity.this,“用户注销!”,Toast.LENGTH_SHORT.show();
}
else loadUser(currentAccessToken);
}
};
私有void加载用户(AccessToken newAccessToken){
GraphRequest request=GraphRequest.NewMereRequest(newAccessToken,new GraphRequest.GraphJSONObjectCallback()){
@凌驾
未完成公共无效(JSONObject对象,GraphResponse响应){
试一试{
String first_name=object.getString(“first_name”);
String last_name=object.getString(“last_name”);
String email=object.getString(“email”);
stringid=object.getString(“id”);
字符串图像\u url=”https://graph.facebook.com/“+id+”/picture?type=normal”;
txtEmail.setText(电子邮件);
txtName.setText(名字+“”+姓氏);
RequestOptions RequestOptions=newrequestoptions();
requestOptions.dontAnimate();
Glide.with(MainActivity.this).load(image\uURL).into(circleImageView);
}捕获(JSONException e){
e、 printStackTrace();
}
}
});
Bundle参数=新Bundle();
parameters.putString(“字段”、“名字、姓氏、电子邮件、id”);
请求。设置参数(参数);
request.executeAsync();
}
私有void checkLoginStatus(){
if(AccessToken.getCurrentAccessToken()!=null){
loadUser(AccessToken.getCurrentAccessToken());
}
}
}
我只想集成facebook登录并获取电子邮件、姓名、图像url、id。我没有足够的复制来发表评论,所以我粘贴了答案。你只要回答我下面的问题就行了
如果您没有收到电子邮件和姓名,请尝试以下代码:
JSONObject res;
res = new JSONObject(json_object.toString());
String id = res.getString("id");
String name = res.getString("name");
String email = res.getString("email");
更新:
- 请从您的设备上卸载FB应用程序,并尝试在应用程序中使用FB登录。它工作正常
- 另外,请更新您的哈希键-
- 在此之后,将哈希键转换为base 64-