Facebook を iOS 5 アプリケーションに統合しようとしています。Facebookのドキュメントで述べたように、私は彼らが述べたようにすべてをやっています。通常、Facebook が認証を開始すると、ユーザーはブラウザで Facebook の Web サイトを開き、認証を求められます。しかし、私の場合、ブラウザを開き、すぐにアプリに戻ります。何が起こっているのか理解できませんでした。
そして、それはFacebookに何も投稿しませんでした。ネイティブ アプリに移行しただけで、再び戻ってきました。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"])
{
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"SELECT uid, name, pic, email FROM user WHERE uid=me()", @"query",nil];
[facebook requestWithMethodName:@"fql.query"
andParams:params
andHttpMethod:@"POST"
andDelegate:self];
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Facebook"
message:@"You are successfully signed in."
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:nil,
nil];
[self performSelector:@selector(dismissAlertView:) withObject:alertView afterDelay:2];
[alertView show];
NSLog(@"signed in");
}
if (![facebook isSessionValid]) {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_likes",
@"read_stream",
@"publish_stream",
nil];
[facebook authorize:permissions];
[permissions release];
}
そうでなければ ([facebook isSessionValid]) { facebookOut.hidden=NO;
}