我尝试将用户email
与AccessToken
联系起来Facebook SDK
如果我使用Graph API Explorer
' AccessToken
我可以id
,name
和email
并不重要如果我使用浏览器或OkHttp
:
"https://graph.facebook.com/" + user_id + "?fields=email,name&access_token=" + access_token_from_graph_explorer
我得到了这样的回应:
{
"email": "mail@com",
"name": "John Doe",
"id": "4545"
}
如果我使用token
方法AccessToken.getCurrentAccessToken().getToken()
,我email
无法获得JSONObject
。
Graph Explorer
我可以看到id
。我试图用这种方式提出要求: "https://graph.facebook.com/me?fields=email,name&access_token="
和此:
"https://graph.facebook.com/" + id + "?fields=email,name&access_token="
在第二个版本中我"Unsupported get request. Object with ID 'xxxxxxxxxxx' does not exist, cannot be loaded due to missing permissions...
使用我的id
。当我尝试使用另一个id
的{{1}}时,我仍然没有获得user
。
email
使用此变体我也没有Bundle bundle = new Bundle();
bundle.putString("fields", "email,name");
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"me",
bundle,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
System.out.println("data = " + response.toString());
}
}
).executeAsync();
。
我很困惑。告诉我,我该如何检索用户电子邮件。
3.登录后我尝试:
email
但我没有通过电子邮件看到public void onSuccess(LoginResult loginResult) {
System.out.println("succses =" + loginResult.getAccessToken().getToken());
accessToken = loginResult.getAccessToken();
GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject user, GraphResponse graphResponse) {
Log.d("TAG", user.optString("email"));
Log.d("TAG", user.optString("name"));
Log.d("TAG", user.optString("id"));
init();
}
}).executeAsync();
}
附: TAG
中的所有权限均已启用。