如何使用Facebook获取用户的电子邮件?
我是iOS新手。 我能够使用loginViewFetchedUserInfo
方法获取用户(Facebook)的first_name
, last_name
,但我想知道如何获取电子邮件,生日等。
这是我的代码:
在viewDidLoad
FBLoginView *loginview = [[FBLoginView alloc] init]; loginview.readPermissions=@[@"email"]; loginview.frame = CGRectOffset(loginview.frame, 5, 5); loginview.delegate = self; [self.view addSubview:loginview]; [loginview sizeToFit];
在此之后,我可以在哪里获取用户的电子邮件地址?
我经历了这么多的post,但他们没有任何意义,所以请帮助。 谢谢!
为新代码Facebook SDK版本4.0及以上
看到这个链接
下面
// use facebook SDK 3.8
在AppDelegate.m中添加以下方法
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication: (NSString *)sourceApplication annotation:(id)annotation { return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication fallbackHandler:^(FBAppCall *call) { NSLog(@"Facebook handler"); } ]; } - (void)applicationDidBecomeActive:(UIApplication *)application { [FBAppEvents activateApp]; [FBAppCall handleDidBecomeActive]; // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application { [FBSession.activeSession close]; // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. }
在你的viewcontroler.h中使用follwing代码
#import <UIKit/UIKit.h> #import <FacebookSDK/FacebookSDK.h> #import <CoreLocation/CoreLocation.h> @interface ViewController : UIViewController<FBLoginViewDelegate> @property (strong, nonatomic) IBOutlet UILabel *lblUserName; @property (strong, nonatomic) IBOutlet UITextField *txtEmailId; @property (strong, nonatomic) IBOutlet UIButton *lblCreate; @property (strong, nonatomic) IBOutlet FBProfilePictureView *profilePic; @property (strong, nonatomic) id<FBGraphUser> loggedInUser; - (IBAction)butCreate:(id)sender; - (void)showAlert:(NSString *)message result:(id)result error:(NSError *)error; @end
//将下面的代码应用到你的视图controller.m
- (void)viewDidLoad { [super viewDidLoad]; FBLoginView *loginview=[[FBLoginView alloc]initWithReadPermissions:@[@"email",@"user_likes"]]; loginview.frame=CGRectMake(60, 50, 200, 50); loginview.delegate=self; [loginview sizeToFit]; [self.view addSubview:loginview]; } -(void)loginViewShowingLoggedInUser:(FBLoginView *)loginView { self.lblCreate.enabled=YES; self.txtEmailId.enabled=YES; self.lblUserName.enabled=YES; } -(void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user { self.lblUserName.text=[NSString stringWithFormat:@"%@",user.name]; self.txtEmailId.text=[user objectForKey:@"email"]; //self.profilePic.profileID=user.id; self.loggedInUser=user; } -(void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView { self.txtEmailId.text=nil; self.lblUserName.text=nil; self.loggedInUser=nil; self.lblCreate.enabled=NO; } -(void)loginView:(FBLoginView *)loginView handleError:(NSError *)error{ NSLog(@"Show the Error ==%@",error); }
Swift 1.2及以上
创build一个字典:
class ViewController: UIViewController { var dict : NSDictionary! }
获取数据:
if((FBSDKAccessToken.currentAccessToken()) != nil){ FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in if (error == nil){ self.dict = result as NSDictionary println(self.dict) NSLog(self.dict.objectForKey("picture")?.objectForKey("data")?.objectForKey("url") as String) } }) }
输出应该是:
{ email = "karthik.saral@gmail.com"; "first_name" = Karthi; id = 924483474253864; "last_name" = keyan; name = "karthi keyan"; picture = { data = { "is_silhouette" = 0; url = "XXXXXXX"; }; }; }
尝试这个..
if(FBSession.activeSession.isOpen) { [FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> user, NSError *error) { if (!error) { NSString *email = [user objectForKey:@"email"]; } }]; }
- 获取Facebook用户的电子邮件和用户名/ Phonegap FB插件IOS应用程序
- Facebook SSO未login(isSessionValid始终返回NO)
- 邀请iOS的Air应用程序中的Facebook朋友
- Facebook共享错误:“您请求的页面现在无法显示”
- 检索Facebook页面喜欢使用自定义loginbutton
- Facebook SDK 4.7loginerror handling
- 没有redirect到Safari浏览器的Facebook iOS SDK授权
- FB.Logout()在UnitySDK中不工作
- 什么是移动网站的facebook.com/sharer.php ios / android url模式?