【问题标题】:Facebook Android SDK get user's Gender, Email, Cover, TimezoneFacebook Android SDK 获取用户的性别、电子邮件、封面、时区
【发布时间】:2017-06-08 14:23:25
【问题描述】:

我正在使用 Facebook Android SDK 4+ 并且能够成功登录,但是如何获取用户性别、电子邮件、封面、时区。这在 Javascript API 中可用。

loginButton.setReadPermissions("public_profile");

为了获取名字和姓氏,我使用 Facebook Docs 中提到的这两种方法。

名字:profile.getFirstName() 姓氏:profile.getFirstName()

用于获取性别、电子邮件、封面、时区。

我尝试过使用

String get_gender = (String) profile.getProperty("gender");
String get_email = (String) profile.getProperty("email_address");
String get_cover = (String) profile.getProperty("cover");
String get_tz = (String) profile.getProperty("timezone");

但它不起作用 (Error: Cannot resolve method getProperty(java.lang.String))

需要帮助来解决此问题。提前致谢。

【问题讨论】:

    标签: android facebook facebook-graph-api


    【解决方案1】:

    试试这个 Facebook Graph API:

    private void faceBookLigin() {
    
            LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_photos", "email", "user_birthday", "user_friends", "user_location"));
            LoginManager.getInstance().registerCallback(callbackManager,
                    new FacebookCallback<LoginResult>() {
                        @Override
                        public void onSuccess(LoginResult loginResult) {
                            // App code
                            accessToken = loginResult.getAccessToken();
    
                                    /* make the API call */
                            GraphRequest request = GraphRequest.newMeRequest(
                                    accessToken,
                                    new GraphRequest.GraphJSONObjectCallback() {
                                        @Override
                                        public void onCompleted(JSONObject object, GraphResponse response) {
                                            if (object == null) {
                                                cUtils.Toast("Please try again!", getApplicationContext());
                                            } else {
                                                try {
                                                    String str_datestr = object.getString("birthday");
                                                    String strd = str_datestr.replaceAll("\\\\/", "/");
                                                    String str_date = strd.replaceAll("/", "-");
                                                    DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy", Locale.getDefault());
                                                    Date date = null;
                                                    try {
                                                        date = formatter.parse(str_date);
                                                    } catch (java.text.ParseException e) {
                                                        // TODO Auto-generated catch block
                                                        e.printStackTrace();
                                                    }
                                                    long output = 0;
                                                    if (date != null) {
                                                        output = date.getTime() / 1000L;
                                                    }
                                                    String str = Long.toString(output);
                                                    actualTime = Long.parseLong(str);
    //                                                Log.v("actualTime = ", " " + actualTime);
    //                                                Log.v("Email = ", " " + object);
                                                    email = object.getString("email");
                                                    facebook_id = object.getString("id");
                                                    first_name = object.getString("first_name");
                                                    last_name = object.getString("last_name");
                                                    user_location = object.getJSONObject("location");
                                                    gender = object.getString("gender");
                                                    verified = object.getBoolean("verified");
                                                    id = object.getString("id");
    
                                                } catch (JSONException e) {
                                                    e.printStackTrace();
                                                }
                                            }
                                        }
                                    });
    
                            Bundle parameters = new Bundle();
                            parameters.putString("fields", "id,first_name,last_name,email,gender,verified,age_range,hometown, birthday,location");
                            request.setParameters(parameters);
                            request.executeAsync();
    
                            if (accessToken != null)
                                LoginManager.getInstance().logOut();
                        }
    
                        @Override
                        public void onCancel() {
                            // App code
    //                        Log.e(TAG, "facebook login canceled");
                            utils.cToast("facebook login canceled", getApplicationContext());
                        }
    
                        @Override
                        public void onError(FacebookException exception) {
                            // App code
    //                        Log.e(TAG, "facebook login failed error" + exception);
                            utils.cToast("facebook login failed", getApplicationContext());
                        }
                    });
        }
    

    【讨论】:

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