Twitter/Facebookのアカウントで認証して、アプリからタイムライン/フィードに投稿する[#7]〜Facebookアカウントでの認証〜
基本的な設定
ここはすでに前回のTwitterアカウントでの認証で行っているので省略
Facebook認証
-(void)facebook{ // パーミッション // タイムラインにユーザーに代わって書き込むにはpublish_streamが必要 NSArray *permissionsArray = @[ @"user_about_me", @"user_relationships", @"user_birthday", @"user_location",@"publish_stream"]; // Facebook アカウントを使ってログイン [PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) { if (!user) { if (!error) { NSLog(@"Facebook ログインをユーザーがキャンセル"); } else { NSLog(@"Facebook ログイン中にエラーが発生: %@", error); } } else if (user.isNew) { NSLog(@"Facebook サインアップ & ログイン完了!"); } else { NSLog(@"Facebook ログイン完了!"); } NSLog(@"sessionToken=%@",user.sessionToken); NSLog(@"isNew=%d",user.isNew); NSLog(@"username=%@",user.username); }]; }
メソッド名がちょっと違うくらいで、Twitterの時とよく似ていますが、
Facebookの場合はNSArray形式でパーミッション設定があります。
ここに列挙している項目に対してユーザーにお伺いを立て、ユーザーが許可するとアクセスが可能になります。
パーミッション設定の詳細はこちら。
続いて、基本的なパラメータを取得してみます。
//facebookの各種データ取得 -(void)info{ FBRequest *request = [FBRequest requestForMe]; // Send request to Facebook [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { if (!error) { // result is a dictionary with the user's Facebook data NSDictionary *userData = (NSDictionary *)result; NSString *facebookID = userData[@"id"]; NSString *name = userData[@"name"]; NSString *location = userData[@"location"][@"name"]; NSString *gender = userData[@"gender"]; NSString *birthday = userData[@"birthday"]; NSString *relationship = userData[@"relationship_status"]; NSURL *pictureURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large&return_ssl_resources=1", facebookID]]; // Now add the data to the UI elements // ... NSLog(@"name=%@",name); NSLog(@"location=%@",location); NSLog(@"gender=%@",gender); NSLog(@"birthday=%@",birthday); NSLog(@"relation=%@",relationship); NSLog(@"pict=%@",pictureURL); } }]; }
これはParseのドキュメントからそのまま拝借したソースなんですが、これで基本的な項目が取得できます。
これで、TwitterとFacebookの認証と情報取得ができました。
次回以降では実際にユーザーに代わってアプリから投稿を行う部分に入って行きます。