まいまいワークス

主にiPhoneアプリの開発で考えた事、調べた事、感じた事などを記していきます。

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のドキュメントからそのまま拝借したソースなんですが、これで基本的な項目が取得できます。
これで、TwitterFacebookの認証と情報取得ができました。
次回以降では実際にユーザーに代わってアプリから投稿を行う部分に入って行きます。


  1. イントロダクション
  2. Twitterのアプリ登録
  3. Facebookのアプリ登録
  4. Parseの登録と設定
  5. Twitterアカウントでの認証
  6. Twitterのタイムライン投稿
  7. Facebookアカウントでの認証
  8. Facebookのフィード投稿