步骤,我在我的项目完成:为什么FBlogin按钮委托方法不能调用?
Fb的APPID我创建:
我在
info.plist
加入这个关键。sdk全部导入到我的项目中。
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]; } }
我的按钮类fbsdkloginbutton,委托成功给予视图 - 控制。
7.Two按钮委派方法还实施
-(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;
[email protected]"1";
[self multiform];
}
}];
}
请参阅此链接可能是你的帮助http://stackoverflow.com/a/30275960/4536708 –
@DharmeshDhorajiya所以你告诉改变我的代码流? –
@DharmeshDhorajiya它给我错误域= com.facebook.sdk.login代码= 301“操作无法完成。(com.facebook.sdk.login错误301.)” –