iOS Facebook 令牌權限生日 (iOS Facebook token Permissions birthday)


問題描述

iOS Facebook 令牌權限生日 (iOS Facebook token Permissions birthday)

大家好,我需要一些幫助,我需要具有必要許可的 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......!  

## 參考解法 #### 方法 1:

While writing this code

[login logInWithReadPermissions:@[@"email"]

Add "public_profile" along with that

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

Check if it works!

EDIT

As CBroe mentioned, we need user_birthday permission and I guess nowadays we have to take approval from facebook for this permission

enter image description here

方法 2:

This works for me

‑ (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];
         }
     }
 }];
}

(by user3365028Rajan MaheshwariErinson)

參考文件

  1. iOS Facebook token Permissions birthday (CC BY‑SA 2.5/3.0/4.0)

#permissions #token #iOS #facebook #sdk






相關問題

SharePoint/WSS:修改“創建者”字段? (SharePoint/WSS: Modify "created by" field?)

從 MS Access 訪問 .mdb 文件中的後端表 (Accessing backend tables in .mdb files from MS Access)

如何以編程方式對 AD OU 條目設置“列出內容”和“列出對象”權限? (How can I programmatically set "List Content" and "List Object" permissions on AD OU entries?)

嘗試使用 C# 設置註冊表權限時出現 NullReferenceException (NullReferenceException when trying to set registry permissions with C#)

可執行腳本在 Linux 機器上獲得權限被拒絕 (Executable script gets permission denied on Linux box)

iOS Facebook 令牌權限生日 (iOS Facebook token Permissions birthday)

如何使 644 個權限文件可從 PHP 寫入? (How do I make 644 permission files writable from PHP?)

Android 6.0 中的權限更改回調 (Permission changed callback in Android 6.0)

LINQ和數據庫權限 (LINQ and Database Permissions)

多個用戶可以訪問/更新 Market 中的單個 Android 應用程序嗎? (Can multiple users access/update a single Android app in the Market?)

運行具有權限的 Eclipse 應用程序或小程序 (Running Eclipse aplication or applet with permissions)

通過 AirWatch 卸載 Android APK (Uninstall Android APK via AirWatch)







留言討論