【问题标题】:How to get Facebook information in android如何在android中获取Facebook信息
【发布时间】:2017-12-12 01:46:46
【问题描述】:

我正在尝试从我在 android 中的 facebook 获取信息, 我的代码:

loginButton.setReadPermissions(Arrays.asList("email", "user_photos", "public_profile"));
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
          Toast.makeText(getApplicationContext(),""+loginResult.getAccessToken(),Toast.LENGTH_SHORT).show();
            String accessToken = loginResult.getAccessToken().getToken();
            GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                @Override
                public void onCompleted(JSONObject object, GraphResponse response) {
                    Log.i("LoginActivity", response.toString());
                    // Get facebook data from login
                    try {
                        object.get("gender");
                        object.get("email");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                 //   Bundle bFacebookData = getFacebookData(object);
                }
            });
            Bundle parameters = new Bundle();
            parameters.putString("fields", "id, first_name, last_name, email,gender, birthday, location"); // Parámetros que pedimos a facebook
            request.setParameters(parameters);
            request.executeAsync();

        }

但是程序没有进入 `public void onCompleted(JSONObject object, GraphResponse response) { 这个函数的结果是:

{Request:  accessToken: {AccessToken token:ACCESS_TOKEN_REMOVED permissions:[email, user_photos, public_profile]}, graphPath: me, graphObject: null, httpMethod: GET, parameters: Bundle[{}]}

有什么解决办法吗?还是这个案例与 facebook 隐私设置有关?

【问题讨论】:

    标签: java android


    【解决方案1】:

    尝试手动构建您的登录流程。这样您就不会卡在sdk 上。

    https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow
    

    【讨论】:

      【解决方案2】:

      尝试替换

      loginResult.getAccessToken()
      

      loginResult.getAccessToken().getToken() .
      

      Facebook 不允许开发人员直接记录“session.getAccessToken”,因为这可能会导致泄漏。也可以查看此以获取更多信息:http://stackoverflow.com/a/29544390/2754871

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多