gpt4 book ai didi

ios - 使用 ACAccount for Facebook iOS 7 获取电子邮件

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:29:20 26 4
gpt4 key购买 nike

首先,我不想使用 Facebook SDK,所以我设法做到了,这是可行的,但我不知道如何检索用户的电子邮件,即使它是在我的权限请求中。

ACAccountStore *account = [[ACAccountStore alloc] init];
ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:accountTypeName];

NSDictionary *options;

if ( [accountTypeName isEqualToString:ACAccountTypeIdentifierFacebook]){
options = @{
ACFacebookAppIdKey: @"601517946570890"
,ACFacebookPermissionsKey: @[@"email"]
};
}

[account requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error)
{
if (granted == YES)
{
NSArray *arrayOfAccounts = [account accountsWithAccountType:accountType];

if ([arrayOfAccounts count] > 0)
{
_account = [arrayOfAccounts lastObject];

NSDictionary *dict = @{
@"name": [_account userFullName] == nil ? [_account username] : [_account userFullName],
@"account_id": [_account identifier],
@"email": @"??"
};

NSLog(@"account info: %@",dict);
}
}
}];

ACAccount 上没有返回用户电子邮件的属性,因此我试图查找是否必须通过 SLRequest 完成但找不到。

这可能吗?

最佳答案

为了从 Facebook 获取用户的电子邮件地址,您必须使用 Graph API查询 current user使用 Social framework :

SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:[NSURL URLWithString:@"https://graph.facebook.com/me"]
parameters:nil];
request.account = _account; // This is the _account from your code
[request performRequestWithHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error == nil && ((NSHTTPURLResponse *)response).statusCode == 200) {
NSError *deserializationError;
NSDictionary *userData = [NSJSONSerialization JSONObjectWithData:data options:0 error:&deserializationError];

if (userData != nil && deserializationError == nil) {
NSString *email = userData[@"email"];
NSLog(@"%@", email);
}
}
}];

关于ios - 使用 ACAccount for Facebook iOS 7 获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19715489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com