我的
Android应用程序中有一个Facebook登录选项,我试图让用户的电子邮件失败.
用户登录后,并添加到Parse.com用户表(带有有效的访问令牌),我请求Facebook用户信息,但只获取它的ID和名称(即使该电子邮件被设置为其中一个权限).
用户登录后,并添加到Parse.com用户表(带有有效的访问令牌),我请求Facebook用户信息,但只获取它的ID和名称(即使该电子邮件被设置为其中一个权限).
这是我的代码(在我的按钮的OnClickListener中):
ParseFacebookUtils.logInWithReadPermissionsInBackground( getActivity(),Arrays.asList("email","user_friends"),new LogInCallback() { @Override public void done(ParseUser user,ParseException err) { //err is null if (user == null) { Log.d(TAG,"Uh oh. The user cancelled the Facebook login."); } else { GraphRequest.newMeRequest( AccessToken.getCurrentAccessToken(),new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject user,GraphResponse response) { Log.d(TAG,"user = " + user.toString()); //prints -> user = {"name":"my_fb_name","id":"my_fb_id"} } } ).executeAsync(); } });
解决方法
我想这与Graph API v2.4中的更改有关,因此您必须指定要从Graph API返回的每个字段.
看看我的回答
> Facebook only returning name and id of user
对此
关于你的实际问题,请参阅
> https://developers.facebook.com/docs/android/graph#userdata
有关如何为GraphRequest指定字段的示例
GraphRequest request = GraphRequest.newMeRequest( accessToken,new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted( JSONObject object,GraphResponse response) { // Application code } }); Bundle parameters = new Bundle(); parameters.putString("fields","id,name,email"); request.setParameters(parameters); request.executeAsync();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。