Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
Android Facebook SDK生日返回空值_Android_Facebook_Facebook Permissions - Fatal编程技术网

Android Facebook SDK生日返回空值

Android Facebook SDK生日返回空值,android,facebook,facebook-permissions,Android,Facebook,Facebook Permissions,我正在使用Facebook SDK(Facebook-android-SDK-3.16)并尝试检索用户公共_配置文件信息 但当我试图获得用户生日时,它总是给我空值 这是我的代码: public void onClick(View view) { openActiveSession(_mActivity, true, new Session.StatusCallback() { @Override public voi

我正在使用Facebook SDK(Facebook-android-SDK-3.16)并尝试检索用户公共_配置文件信息

但当我试图获得用户生日时,它总是给我空值

这是我的代码:

public void onClick(View view) {

    openActiveSession(_mActivity, true, new Session.StatusCallback() {                  

        @Override
        public void call(Session session, SessionState state, Exception exception) {
            if (session.isOpened()) {

                Log.v(APP_TAG, " ============== " + session.getPermissions());
                Log.v(APP_TAG, " ============== " + session.isPermissionGranted("user_birthday"));
                //make request to the /me API);
                Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
                    @Override
                    public void onCompleted(GraphUser user, Response response) {
                        Log.d(APP_TAG, " ============== " + response);
                        if (user != null) {

                            _medtFName.setText(user.getFirstName());
                            _medtLName.setText(user.getLastName());
                            _medtEmailAddress.setText(user.getProperty("email").toString());
                            Log.i(APP_TAG, " ============== " + user.getBirthday());                                    

                            Log.i(APP_TAG, " ============== " + user.getProperty("gender").toString());
                        }
                    }
                });
             }
         }
     });
}


private static Session openActiveSession(Activity activity, boolean allowLoginUI, Session.StatusCallback callback) {
    Session.Builder builder = new Builder(activity);
    Session session = builder.build();
    Session.OpenRequest openRequest = new OpenRequest(activity);
    List<String> permission=new ArrayList<String>();
    permission.add("user_birthday");
    permission.add("user_likes");
    permission.add("user_location");
    permission.add("email");

    if (SessionState.CREATED_TOKEN_LOADED.equals(session.getState()) || allowLoginUI) {

        openRequest.setPermissions(permission);
        Session.setActiveSession(session);//This will take care of the null pointer
        openRequest.setCallback(callback);//the callback
        session.openForRead(openRequest);
        return session;
    }
    return null;
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(_mActivity, requestCode, resultCode, data);
}
public void onClick(视图){
openActiveSession(_mActivity,true,new Session.StatusCallback(){
@凌驾
公共无效调用(会话、会话状态、异常){
if(session.isOpened()){
Log.v(APP_标记,“===================”+session.getPermissions());
Log.v(应用程序标签“================”+session.ispermissiongrated(“用户生日”));
//向/me API发出请求);
Request.executeRequestAsync(会话,新请求.GraphUserCallback(){
@凌驾
未完成公共无效(GraphUser用户,响应){
Log.d(应用程序标签“===================”+响应);
如果(用户!=null){
_medtFName.setText(user.getFirstName());
_medtLName.setText(user.getLastName());
_medtEmailAddress.setText(user.getProperty(“email”).toString());
Log.i(APP_标签,”=====================“+user.getBirthday());
Log.i(APP_标签,“================”+user.getProperty(“性别”).toString());
}
}
});
}
}
});
}
私有静态会话openActiveSession(活动活动、布尔allowLoginUI、Session.StatusCallback回调){
Session.Builder=新的Builder(活动);
Session=builder.build();
Session.OpenRequest OpenRequest=新的OpenRequest(活动);
列表权限=新建ArrayList();
权限。添加(“用户生日”);
权限。添加(“用户喜欢”);
权限。添加(“用户位置”);
许可。添加(“电子邮件”);
if(SessionState.CREATED_TOKEN_LOADED.equals(session.getState())| | allowLoginUI){
openRequest.setPermissions(权限);
Session.setActiveSession(Session);//这将处理空指针
openRequest.setCallback(回调);//回调
openForRead(openRequest);
返回会议;
}
返回null;
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
Session.getActiveSession().onActivityResult(\u活动、请求代码、结果代码、数据);
}
当我尝试调用
session.ispermissiongrated(“用户生日”)
its gives
false


我如何获得用户_birth

生日和电子邮件地址的授权您无法首先进入(登录身份验证)通话在此通话中,您只能获得用户一般配置文件只有几个参数。 如果您想获取出生日期/电子邮件/朋友列表,则必须使用特定权限进行单独的呼叫后身份验证。要获得许可,请访问以下链接

您将获得空值,因为您需要Facebook审核您的APK才能获得用户的生日,如果您尝试使用开发人员的Facebook帐户(创建Facebook应用程序的帐户)登录,您将获得生日,但对于一般公众访问,您必须提供APK以供Facebook审核


如果您有任何疑问,请告诉我。

这不是代码问题,如果用户获得了检索出生日的授权权限,而不是我们获得的其他权限,则我们将获得空值。只需转到此链接并搜索生日,您就可以自动了解this@Digvesh帕特尔:我已经为生日设置了权限,但我总是给我空权限来理解你给我的权限您的应用程序将重新保存生日,但若用户未授予访问权限,您会考虑吗?