首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在android中从facebook获取用户性别和生日

如何在android中从facebook获取用户性别和生日
EN

Stack Overflow用户
提问于 2018-06-29 07:36:32
回答 1查看 3.6K关注 0票数 5

在下面的代码中,我已经尝试过了,这是不起作用的。

代码语言:javascript
运行
复制
facebookLoginButton  = (LoginButton)view .findViewById(R.id.fragment_login_facebook);
        facebookLoginButton.setFragment(this);
callbackManager = CallbackManager.Factory.create();

facebookLoginButton.setReadPermissions(Arrays.asList("public_profile", "email", "user_birthday", "user_friends"));
        callbackManager = CallbackManager.Factory.create();

    facebookLoginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        private ProfileTracker mProfileTracker;
        @Override
        public void onSuccess(LoginResult loginResult) {


            String accessTocken = loginResult.getAccessToken().getToken().toString();

            Log.v("TAG", "Access Token " + loginResult.getAccessToken().getToken());
            GraphRequest request = GraphRequest.newMeRequest(
                    loginResult.getAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(JSONObject object, GraphResponse response) {

                            try {
                                String email = object.getString("birthday");
                                String name = object.getString("gender");
                                Toast.makeText(getActivity().getApplicationContext(),email + " " + name ,Toast.LENGTH_SHORT).show();
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    });

            Bundle parameters = new Bundle();
            parameters.putString("fields", "id,name,email,gender,birthday");
            request.setParameters(parameters);
            request.executeAsync();



            if (com.facebook.Profile.getCurrentProfile() == null){
                mProfileTracker = new ProfileTracker() {
                    @Override
                    protected void onCurrentProfileChanged(com.facebook.Profile oldProfile, com.facebook.Profile currentProfile) {
                        mProfileTracker.stopTracking();
                    }
                };
                mProfileTracker.startTracking();
            } else {
                com.facebook.Profile profile = com.facebook.Profile.getCurrentProfile();
            }

            try {
                URL image_value = new URL("http://graph.facebook.com/" + loginResult.getAccessToken().getUserId() + "/picture?type=large");
                Log.v(Constants.TAG, image_value + "");
            } catch (Exception e) {
            }
        }

        @Override
        public void onCancel() {
            Log.e("TAG", "wrong");
        }

        @Override
        public void onError(FacebookException error) {
            Log.e("TAG", "wrong");
        }
    });

其中facebookLoginButton是LoginButton,callbackManager是CallbackManager,请帮我提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 07:52:34

  • Facebook gender & birthday需要app审核。

需要应用审核的

应用

如果您的应用程序使用以下功能,则需要对其进行审核:

Facebook登录,并要求提供某人的生日、位置、家乡、性别、年龄范围或个人资料链接

  • 查看link了解更多详细信息。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51092457

复制
相关文章

相似问题

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