gpt4 book ai didi

ios - 为什么 FBlogin 按钮委托(delegate)方法不调用?

转载 作者:行者123 更新时间:2023-11-29 12:10:56 24 4
gpt4 key购买 nike

我在项目中完成的步骤:

  1. Fb appid i 被创建:

  2. 我已将此 key 添加到我的 info.plist 中。

  3. sdk全部导入我的项目。

  4. appdelegate.m 文件

    -(BOOL)application:(UIApplication *)application
    openURL:(NSURL *)url
    sourceApplication:(NSString *)sourceApplication
    annotation:(id)annotation {

    NSString *stringURL = [ url absoluteString];
    if([stringURL containsString:@"fb"])
    {

    return [[FBSDKApplicationDelegate sharedInstance] application:application
    openURL:url
    sourceApplication:sourceApplication
    annotation:annotation];

    }
    else
    {

    return [GPPURLHandler handleURL:url
    sourceApplication:sourceApplication
    annotation:annotation];

    }
    }
  5. 我的按钮类是 fbsdkloginbutton,委托(delegate)已成功提供给 viewcontroller

6. enter image description here

7.两个按钮委托(delegate)方法也实现了

-(BOOL)loginButtonWillLogin:(FBSDKLoginButton *)loginButton
{
return YES;
}
-(void)loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error:(NSError *)error

{
if(error)
{
NSLog(@"==%@",error);
}
else
{

NSUserDefaults *pref=[NSUserDefaults standardUserDefaults];
[pref setObject:_txtcity.text forKey:@"CITY"];

[self _loadData];

}
}
-(void)loginButtonDidLogOut:(FBSDKLoginButton *)loginButton
{
NSLog(@"user logged out");
[[FBSDKLoginManager new] logOut];
}

- (void)_loadData {
// FBSDKGraphRequest *request=[[FBSDKGraphRequest alloc]initWithGraphPath:@"me" parameters:@{ @"fields" : @"id,name,picture.width(100).height(100),email"} tokenString:nil version:nil HTTPMethod:@"GET"];
// For more complex open graph stories, use `FBSDKShareAPI`
// with `FBSDKShareOpenGraphContent`
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/me"
parameters:@{ @"fields" : @"id,name,picture.width(100).height(100),emailid"}
HTTPMethod:@"GET"];
// @{ @"fields" : @"id,name,picture.width(100).height(100),email"}
//@{ @"fields" : @"id,name,picture.width(100).height(100)"}]
// @{@"fields":@"email,public_profile"}
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
if(result)
{
NSLog(@"%@",connection);
// Handle the result
NSLog(@"%@",result);
NSDictionary *userData = (NSDictionary *)result;
NSLog(@"====%@",request);
NSString *facebookID = userData[@"id"];
name = userData[@"name"];
// NSString *location = userData[@"location"][@"name"];

email = userData[@"email"];
imgurl = userData[@"picture"][@"data"][@"url"];
NSLog(@"this is email=%@facebookid==%@name==%@picture url%@",email,facebookID,name,imgurl);
NSData *Data=[NSData dataWithContentsOfURL:[NSURL URLWithString:imgurl]];
UIImage *image=[UIImage imageWithData:Data];
datas.imgProfilePhoto=image;
one=@"1";
[self multiform];
}


}];


}

最佳答案

确保按钮在 XIB 中被赋予 FBSDKLoginButton 类。

关于ios - 为什么 FBlogin 按钮委托(delegate)方法不调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33448937/

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