met*_*eth 1 facebook objective-c ios5
我是iOS的新手,我想为我的应用程序登录facebook.
我用facebook的新ios sdk尝试了很多.但我得到错误.
代码是
-(IBAction)logIn:(id)sender;
{
AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appdelegate sessionOpener];
FBRequest *me = [FBRequest requestForMe];
[me startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary<FBGraphUser> *my,
NSError *error) {
NSLog(@"id %@", my.id);
NSLog(@"name %@", my.first_name);
greet.text = my.first_name;//this is a label to show the name
user.userID = my.id;//this is a FBProfilePictureView to show
}];
[UIView transitionFromView:self.view
toView:userPage
duration:0.5
options:(UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionTransitionFlipFromLeft)
completion:NULL]; }
`
and sessionOpener is;
-(void) sessionOpener{
[FBSession sessionOpenWithPermissions:nil
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
// session might now be open.
}];
}
Run Code Online (Sandbox Code Playgroud)
现在我得到的错误是; 当我第一次登录到应用程序后登录值返回null并且我得到http 400错误.
但登录后我第二次运行应用程序时,它获取信息为true并打印我的名字.
我的模拟器iphone 5.1模拟器
小智 5
尝试创建会话对象并将其添加到请求中:
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"email",
@"publish_stream"
nil];
FBSession facebook_session = [[FBSession alloc] initWithPermissions:permissions];`
[[[FBRequest alloc] initWithSession:facebook_session graphPath:@"me"] startWithCompletionHandler:
^(FBRequestConnection *connection,
NSDictionary<FBGraphUser> *user,
NSError *error) {
if (!error) {
// get the data from user object
}else {
NSLog(@"Error: %@",error);
}
}];`
Run Code Online (Sandbox Code Playgroud)