【问题标题】:iOS Facebook token Permissions birthdayiOS Facebook 令牌权限生日
【发布时间】:2016-02-17 07:31:12
【问题描述】:

大家好,我需要一些帮助,我需要具有必要许可的 Facebook 令牌来显示生日用户...!这是我的注册 API 的必要要求我正在查看 Facebook 开发人员我正在使用所有方法但我仍然有生日数据

 #import <FBSDKCoreKit/FBSDKCoreKit.h>
 #import <FBSDKLoginKit/FBSDKLoginKit.h>






- (IBAction)loginFaceboook:(id)sender {

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
   [login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)

 {
     if (error)
     {
         // Process error
     }
     else if (result.isCancelled)
     {
         // Handle cancellations
     }
     else
     {

         if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) {
             // TODO: publish content.
         } else {

             FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
             [loginManager logInWithPublishPermissions:@[@"publish_actions"]
                                    fromViewController:self
                                               handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                                                   //TODO: process error or result.
                                               }];
         }

         if ([result.grantedPermissions containsObject:@"email"])
         {
           NSLog(@"result is:%@",result);
             [self fetchUserInfo];
         }
     }
 }];
}
-(void)fetchUserInfo
{

if ([FBSDKAccessToken currentAccessToken])
{

       // NSLog(@"Token is available : %@",[[FBSDKAccessToken     currentAccessToken]tokenString]);

 [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"name, email, birthday"}]
     startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
         if (!error)
         {
             NSLog(@"resultis:%@",result);
             _auth_token = [[FBSDKAccessToken     currentAccessToken]tokenString];
             NSLog(@"Token Facebook is : %@",_auth_token);

  ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\\///\\\//   /\\\///\\\///\\\\///\\\///\\\///\\\

             AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
             //[manager setResponseSerializer:[AFJSONResponseSerializer serializer]];
             manager.responseSerializer = [AFJSONResponseSerializer serializer];
             manager.requestSerializer = [AFJSONRequestSerializer serializer];
             NSDictionary *params = @{@"access_token":_auth_token};
             [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
             [manager POST:@"http:myUrl/api/facebook/" parameters:params success:^(NSURLSessionDataTask *operation, id responseObject) {
                 manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
                 if (responseObject)
                 {
                     NSLog(@"POST data JSON returned: %@", responseObject);

                     NSLog(@"DATA SEND OK");

                 }
             } failure:^(NSURLSessionDataTask *task, NSError *error) {
                 NSLog(@"ERROR NO SEND DATA FROM FACEBOOK.. %@", error);
             }];

             _LoginFacebook.alpha=0;
Menu *VC2 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[VC2 setModalTransitionStyle:(UIModalTransitionStyleCrossDissolve)];
[self presentViewController:VC2 animated:YES completion:nil ];

             NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
             [prefs setObject:self.auth_token forKey:@"tokenF"];
             [prefs synchronize];
             NSLog(@"Saved Toke %@",prefs);
         }
         else
         {
             NSLog(@"Error %@",error);
         }
     }];

}

}

来自控制台的信息数据是正确的但被交换为x不提供个人信息

 email = "xxxxxxxxxxxxxxxx@aol.com";
 id = xxxxxxxxxxxxxxxxx;
 name = "xxxxxxxxxxx";
 Token Facebook is : xxxxxxxxxxxxxxxx......!  

【问题讨论】:

    标签: ios facebook sdk permissions token


    【解决方案1】:

    在编写这段代码时

    [login logInWithReadPermissions:@[@"email"]
    

    同时添加 "public_profile"

    [login logInWithReadPermissions:@[@"email",@"public_profile"]
    

    检查它是否有效!

    编辑

    正如 CBroe 所说,我们需要 user_birthday 权限,我想现在我们必须获得 facebook 的批准才能获得此权限

    【讨论】:

    • 生日不是 public_profile 的一部分,它需要user_birthday 权限。
    • 哦...是的,它不是 public_profile 的一部分。我认为现在生日我们需要先获得 Facebook 的批准
    • 是的,我正在尝试这个 FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; [登录 setLoginBehavior:FBSDKLoginBehaviorNative]; [登录 logInWithReadPermissions:@[@"public_profile",@"email"] fromViewController:nil handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { } 但不显示我的生日
    • 已经编辑了答案。你不会过生日。您首先必须提交到 facebook 进行审核
    • 是的工作我需要 user_birthday 权限,我想现在我们必须获得 facebook 的批准才能获得此权限和 [login logInWithReadPermissions:@[@"public_profile",@"user_birthday"]
    【解决方案2】:

    这对我有用

    - (IBAction)loginFaceboook:(id)sender {
    
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
    [login setLoginBehavior:FBSDKLoginBehaviorNative];
    [login logInWithReadPermissions:@[@"public_profile",@"user_birthday"] fromViewController:nil handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    
        if (error)
         {
             // Process error
         }
         else if (result.isCancelled)
         {
             // Handle cancellations
         }
         else
         {
             if ([[FBSDKAccessToken currentAccessToken]   hasGranted:@"publish_actions"]) {
                 // TODO: publish content.
             } else {
    
                 FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
                 [loginManager logInWithPublishPermissions:@[@"publish_actions"]
                                        fromViewController:self
                                                   handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                                                       //TODO: process error or result.
                                                   }];
             }
    
             if ([result.grantedPermissions containsObject:@"email"])
             {
                 NSLog(@"result is:%@",result);
                 [self fetchUserInfo];
             }
         }
     }];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-24
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 2014-02-03
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多