首页
学习
活动
专区
圈层
工具
发布

/me请求
EN

Stack Overflow用户
提问于 2015-08-14 14:34:34
回答 1查看 3.1K关注 0票数 0

我正在尝试将Facebook登录到我的Android应用程序中。我遇到的问题是,我似乎无法使用额外的参数成功地发出/me request请求。

如果我试图单独执行/me请求,则无法获得用户ID和名称。我想得到额外的字段,如电子邮件、first_name、last_name等。

误差

{响应: responseCode: 400,graphObject: null,错误:{HttpStatus: 400,errorCode: 2500,errorType: OAuthException,errorMessage:活动访问令牌必须用于查询有关当前用户的信息。}

试图发出请求

我是在onSuccess方法中的LoginManager中执行这一操作的。

代码语言:javascript
复制
new GraphRequest(
    loginResult.getAccessToken(),
    "/me?fields=id,name,email",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
EN

回答 1

Stack Overflow用户

发布于 2015-08-15 06:40:52

我认为loginResult.getAccessToken()有问题,尝试如下:

代码语言:javascript
复制
    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();

使用您想要的完全权限检查登录成功。

代码语言:javascript
复制
if (AccessToken.getCurrentAccessToken().getDeclinedPermissions().size() == 0) {

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32012599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档