繁体   English   中英

无法获得Facebook权限:Birthday_date,about_me始终为null

[英]Unable to get Facebook permissions: birthday_date, about_me always null

我已经向facebook询问了生日日期,about_me以及用户和朋友的位置权限,但是当我查询以获取这些字段时,这些为空。 我在json中有150个朋友,所有这些字段都等于null,这表明Facebook尚未通过身份验证。 查询:

        String query = "select name,about_me,birthday_date, current_location, uid, pic_square,sex from user where uid in (select uid2 from friend where uid1=me()) order by name";
        Bundle params = new Bundle();
        params.putString("method", "fql.query");
        params.putString("query", query);
        response = Utility.mFacebook.request(null, params, "GET");

Json响应包含以下字段为null。

"birthday_date": null,
"current_location": null,
"about_me": null,

我正在使用以下代码登录并从Facebook获得许可。

    Utility.mFacebook = new Facebook(Constants.MY_APP_ID);
    Utility.mAsyncRunner = new AsyncFacebookRunner(Utility.mFacebook);

    SessionStore.restore(Utility.mFacebook, this);
    SessionEvents.addAuthListener(new SampleAuthListener());
    SessionEvents.addLogoutListener(new SampleLogoutListener());
    String permissions[]=new String[]{"user_about_me","friends_about_me","user_birthday",
            "friends_birthday","user_location","friends_location","offline_access"};
    mLoginButton.init(this, Utility.mFacebook,permissions);

按钮的onClick方法如下。

    public void onClick(View arg0) {
        if (mFb.isSessionValid()) {
            SessionEvents.onLogoutBegin();
            AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(mFb);
            asyncRunner.logout(getContext(), new LogoutRequestListener());
        } else {
            mFb.authorize(mActivity, mPermissions,Facebook.FORCE_DIALOG_AUTH,
                          new LoginDialogListener());
        }
    }

您是否需要使用与许可相同的名称来请求他们? 即它看起来像这样:

String query = "select name, user_about_me, user_birthday, user_location, uid, pic_square, sex from user where uid in (select uid2 from friend where uid1=me()) order by name";

编辑您是否尝试过使用Graph API调用进行此操作? 我相信可以通过以下方式获得相同的信息:

https://graph.facebook.com/<fb_id>?fields=birthday,location,bio&access_token=<user_access_token>

如果您不想使用图表调用,是否尝试过在FQL调用中使用生日,位置和生物信息,也许他们更改了列的名称?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM