cor*_*iro 6 java android facebook facebook-graph-api parse-platform
我的Android应用程序中有一个Facebook登录选项,我试图让用户的电子邮件失败.用户登录后,并添加到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();
}
});
Run Code Online (Sandbox Code Playgroud)
Tob*_*obi 26
我想这与Graph API v2.4中的更改有关,因此您必须指定要从Graph API返回的每个字段.
看看我的回答
对此
关于你的实际问题,请参阅
有关如何为a指定字段的示例 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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7533 次 |
| 最近记录: |