Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook Android SDK获取用户';s性别、电子邮件、封面、时区_Android_Facebook_Facebook Graph Api - Fatal编程技术网

Facebook Android SDK获取用户';s性别、电子邮件、封面、时区

Facebook Android SDK获取用户';s性别、电子邮件、封面、时区,android,facebook,facebook-graph-api,Android,Facebook,Facebook Graph Api,我正在使用Facebook Android SDK 4+并能够成功登录,但如何获取用户性别、电子邮件、封面和时区。这在Javascript API中可用 loginButton.setReadPermissions("public_profile"); 为了获得firstname和lastname,我使用了Facebook文档中提到的这两种方法 名字:profile.getFirstName() Lastname:profile.getFirstName() 用于获取性别、电子邮件、封面、时区

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

loginButton.setReadPermissions("public_profile");
为了获得firstname和lastname,我使用了Facebook文档中提到的这两种方法

名字:
profile.getFirstName()
Lastname:
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");
但它不起作用
(错误:无法解析方法getProperty(java.lang.String))


需要帮助来解决这个问题。提前感谢。

试试这个Facebook图形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());
                    }
                });
    }
private void faceBookLigin(){
LoginManager.getInstance().logInWithReadPermissions(这是一个数组.asList(“public\u profile”,“user\u photos”,“email”,“user\u birth”,“user\u friends”,“user\u location”));
LoginManager.getInstance().registerCallback(callbackManager,
新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
accessToken=loginResult.getAccessToken();
/*进行API调用*/
GraphRequest请求=GraphRequest.newmereRequest(
accessToken,
新建GraphRequest.GraphJSONObjectCallback(){
@凌驾
未完成公共无效(JSONObject对象,GraphResponse响应){
if(object==null){
Toast(“请再试一次!”,getApplicationContext());
}否则{
试一试{
String str_datestr=object.getString(“生日”);
字符串strd=str\u datestr.replaceAll(“\\\\\/”,“/”);
字符串str_date=strd.replaceAll(“/”,“-”);
DateFormat格式化程序=新的SimpleDataFormat(“MM dd yyyy”,Locale.getDefault());
日期=空;
试一试{
date=formatter.parse(str_date);
}catch(java.text.parsee){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
长输出=0;
如果(日期!=null){
output=date.getTime()/1000L;
}
字符串str=Long.toString(输出);
实际时间=Long.parseLong(str);
//Log.v(“actualTime=”,“”+actualTime);
//Log.v(“Email=”,“”+对象);
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(“位置”);
性别=object.getString(“性别”);
已验证=object.getBoolean(“已验证”);
id=object.getString(“id”);
}捕获(JSONException e){
e、 printStackTrace();
}
}
}
});
Bundle参数=新Bundle();
参数.putString(“字段”、“id、名、姓、电子邮件、性别、已验证、年龄范围、家乡、生日、位置”);
请求。设置参数(参数);
request.executeAsync();
if(accessToken!=null)
LoginManager.getInstance().logOut();
}
@凌驾
公开作废{
//应用程序代码
//Log.e(标记“facebook登录已取消”);
cToast(“facebook登录已取消”,getApplicationContext());
}
@凌驾
public void onError(facebook异常){
//应用程序代码
//Log.e(标记“facebook登录失败错误”+异常);
cToast(“facebook登录失败”,getApplicationContext());
}
});
}