Facebook请求不会输出任何电子邮件。我怎么得到这个?我需要它来登录/注册过程
- (void)request:(FBRequest *)request didLoad:(id)result{
NSLog(@"FACEBOOK RESULT %@ ", result);
}
这是最初的要求:
[facebook requestWithGraphPath:@"me" andDelegate:self];
答案 0 :(得分:2)
如果没有请求获取其他权限,则无法获取email
属性,请参阅https://developers.facebook.com/docs/reference/login/email-permissions/。
我的应用程序使用以下代码首先检查Facebook会话是否有效(self.facebook
是使用Facebook
初始化的initWithAppId
对象):
if (![self.facebook isSessionValid]) {
NSArray* permissions = [NSArray arrayWithObjects: @"email", nil];
[self.facebook authorize:permissions];
} else {
// Since we have a valid session we can get the userinfo
[self getFacebookUserInfo];
}
您的应用程序提示将指示“使用此应用程序需要:*您的基本信息*您的电子邮件地址”如果用户授权您获取此信息,则您返回的访问令牌将设置为允许您获取e的位邮件地址,以下将起作用:
-(void)getFacebookUserInfo {
[self.facebook requestWithGraphPath:@"me" andDelegate:self];
}
假设您的-(void)request:(FBRequest *)request didLoad:(id)result
方法可用(看起来是这样)。
请注意,此帖子中未提供完整的SSO(单点登录)流程,您需要详细浏览https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/#implementsso。
另请注意,您可能正在使用已弃用的iOS 6 API,在进一步操作之前,请先查看https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-2.0-to-3.1/。
答案 1 :(得分:1)
使用2.4 api时,使用参数来指定您有兴趣接收哪些用户数据项。 E.g:
FBSDKGraphRequestConnection * connection2 = [[FBSDKGraphRequestConnection alloc] init];
FBSDKGraphRequest *selfRequest = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me?"
parameters:@{@"fields":@"id,name,first_name,last_name,verified,email"}];
[connection2 addRequest:selfRequest
completionHandler:^(FBSDKGraphRequestConnection *innerConnection, NSDictionary *result, NSError *error) {
if (error) {
NSLog(@"%@", error);
return;
}
if (result) {
// get user data
NSMutableDictionary *facebookUserData = [NSMutableDictionary dictionaryWithDictionary:result];
NSLog(@"result=%@", result);
但是,他们显然搞砸了大部分时间,因为电子邮件目前还没有为开发者返回,目前正在开发应用程序中。 顺便提一下,在开发中的应用程序上提交错误是不可能的,因为它们需要在反馈系统中批准的应用程序......
我想知道在提交应用程序以供审批之前,他们怎么认为我们会确保某些工作有效,或者在Facebook之前要求获得App Store App Store ID的逻辑是什么?可以充分测试集成。
此外,谁是Facebook的天才谁决定有一天从另一个中断工作代码?