• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - FBRequest 不返回用户生日

[复制链接]
菜鸟教程小白 发表于 2022-12-12 11:57:45 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 Facebook SDK v.3.18.2

我只想要用户的名字、姓氏、电子邮件和出生日期我得到了除了出生日期以外的所有内容

我肯定做错了权限?不确定。

这里有一些代码可以帮助你找出我的问题,

    [FBSession openActiveSessionWithReadPermissions[@"public_profile"] allowLoginUI:YES completionHandler:
     ^(FBSession *session, FBSessionState state, NSError *error) {
         // Call the sessionStateChanged:state:error method to handle session state changes
         [self sessionStateChanged:session state:state error:error];
     }];

// This method will handle ALL the session state changes in the app
- (void)sessionStateChangedFBSession *)session stateFBSessionState) state errorNSError     *)error
{
    // If the session was opened successfully
    if (!error && state == FBSessionStateOpen){
        NSLog(@"Session opened");
        if (FBSession.activeSession.isOpen) {

//            This is not working though I'm putting it as comment
//            [[FBRequest requestForMe] startWithCompletionHandler:
//             ^(FBRequestConnection *connection,
//               NSDictionary<FBGraphUser> *user,
//               NSError *error) {
//                 if (!error) {
//                     NSLog(@"User Info : %@",user);
//                 }
//             }];
        
        [[FBRequest requestForGraphPath"me"] startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            NSLog(@"%@",result);
        }];
    }
    return;
}

这是输出日志:

{
    email = "email@domain";
    "first_name" = Hemang;
    gender = male;
    id = someId;
    "last_name" = Shah;
    link = "https://www.facebook.com/app_scoped_user_id/someId/";
    locale = "en_US";
    name = "Hemang Shah";
    timezone = "5.5";
    "updated_time" = "some date and time";
    verified = 1;
}

但是出生日期不见了,我也在我的个人资料中设置了。

更新:

尝试使用以下权限不工作!

"user_birthdate"或 “生日”



Best Answer-推荐答案


 [FBSession openActiveSessionWithReadPermissions[@"email",@"user_birthday",@"public_profile"]
                                   allowLoginUI:YES
                              completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {

                                  switch (state) {
                                      case FBSessionStateOpen:
                                          [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
                                              if (error) {

                                                  NSLog(@"error:%@",error);


                                              }
                                              else
                                              {
                                                  // retrive user's details at here as shown below
                                                  NSLog(@"FB user first name:%@",user.first_name);
                                                  NSLog(@"FB user last name:%@",user.last_name);
                                                  NSLog(@"FB user birthday:%@",user.birthday);
                                                  NSLog(@"FB user location:%@",user.location);                                                      NSLog(@"FB user gender:%@",[user objectForKey"gender"]);
                                                  NSLog(@"email id:%@",[user objectForKey"email"]);
                                                  NSLog(@"location:%@", [NSString stringWithFormat"Location: %@\n\n",
                                                                         user.location[@"name"]]);

                                              }
                                          }];
                                          break;

                                      case FBSessionStateClosed:
                                      case FBSessionStateClosedLoginFailed:
                                          [FBSession.activeSession closeAndClearTokenInformation];
                                          break;

                                      default:
                                          break;
                                  }

                              } ];

需要引用:use this link

控制台输出为:enter image description here

我附上了示例项目并检查了 - (IBAction)loginwithCustomButactionid)sender the project link

关于ios - FBRequest 不返回用户生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26139090/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap