gpt4 book ai didi

ios - 没有使用 Facebook 4.4.0 SDK 获取电子邮件和公开个人资料

转载 作者:可可西里 更新时间:2023-11-01 06:18:09 24 4
gpt4 key购买 nike

我目前正在开发 Facebook SDK 4.4.0。在 4.4.0 版本之前,在 4.3.0 中我们收到邮件,public_profile 包含以下代码

NSArray *arrFBPermission = [[NSArray alloc]initWithObjects:@"email",@"public_profile", nil];
[loginUsingFB logInWithReadPermissions:arrFBPermission handler:^(FBSDKLoginManagerLoginResult *result, NSError *error){
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error){
if (!error){
NSString *fnm = [result valueForKey:@"first_name"];
NSString *lnm = [result valueForKey:@"last_name"];
}
else{
Nslog("%@", error localizedDescription);
}
}];
}

现在在新 SDK(即 4.4.0)中我没有得到这些值。为什么?我想要来自 Facebook 的电子邮件、名字、姓氏和 ID。

最佳答案

在 Facebook 4.4 SDK 中有一个细微的变化。您必须从 Facebook 帐户使用您想要的 FBSDKGraphRequest 请求参数。

在您的代码中,参数中有 nil:

使用如下参数更新您的代码:

[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location , friends ,hometown , friendlists"}]

如果您想使用自定义按钮登录 Facebook,那么您可以使用如下完整代码:

- (IBAction)btnFacebookPressed:(id)sender {
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
login.loginBehavior = FBSDKLoginBehaviorBrowser;
[login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
if (error)
{
// Process error
}
else if (result.isCancelled)
{
// Handle cancellations
}
else
{
if ([result.grantedPermissions containsObject:@"email"])
{
NSLog(@"result is:%@",result);
[self fetchUserInfo];
[login logOut]; // Only If you don't want to save the session for current app
}
}
}];
}
-(void)fetchUserInfo
{
if ([FBSDKAccessToken currentAccessToken])
{
NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]);

[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email"}]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error)
{
NSLog(@"resultis:%@",result);

}
else
{
NSLog(@"Error %@",error);
}
}];
}
}

希望对你有用。

关于ios - 没有使用 Facebook 4.4.0 SDK 获取电子邮件和公开个人资料,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31312744/

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