我正在尝试将Facebook登录到我的Android应用程序中。我遇到的问题是,我似乎无法使用额外的参数成功地发出/me request请求。
如果我试图单独执行/me请求,则无法获得用户ID和名称。我想得到额外的字段,如电子邮件、first_name、last_name等。
误差
{响应: responseCode: 400,graphObject: null,错误:{HttpStatus: 400,errorCode: 2500,errorType: OAuthException,errorMessage:活动访问令牌必须用于查询有关当前用户的信息。}
试图发出请求
我是在onSuccess方法中的LoginManager中执行这一操作的。
new GraphRequest(
loginResult.getAccessToken(),
"/me?fields=id,name,email",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();发布于 2015-08-15 06:40:52
我认为loginResult.getAccessToken()有问题,尝试如下:
Bundle params = new Bundle();
params.putString("fields", "id,name,email");
new GraphRequest(
AccessToken.getCurrentAccessToken(), //loginResult.getAccessToken(),
"/me",
params,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
try {
Log.e("JSON",response.toString());
JSONObject data = response.getJSONObject();
//data.getString("id"),
//data.getString("name"),
//data.getString("email")
} catch (Exception e){
e.printStackTrace();
}
}
}
).executeAsync();使用您想要的完全权限检查登录成功。
if (AccessToken.getCurrentAccessToken().getDeclinedPermissions().size() == 0) {
}https://stackoverflow.com/questions/32012599
复制相似问题