iOSでFacebookLoginしよう!もちobjective-cでね。②
iOSでFacebookLoginしよう!もちobjective-cでね。の第二回です。
前回はこちら。iOSでFacebookLoginしよう!もちobjective-cでね。
ではXcodeを開いてゴリゴリと書いていきましょう。
お楽しみのハードコーディング
まずはAppDelegateで下準備が必要です。
AppDelegate.m #import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [FBSDKLoginButton class]; return [[FBSDKApplicationDelegate sharedInstance]application:application didFinishLaunchingWithOptions:launchOptions]; } - (void)applicationDidBecomeActive:(UIApplication *)application { [FBSDKAppEvents activateApp]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; }
を追加します。
次にviewControllerに書いていきます。
//viewController.h #import <FBSDKLoginKit/FBSDKLoginKit.h> #import <FBSDKCoreKit/FBSDKCoreKit.h> @property (strong, nonatomic) IBOutlet FBSDKLoginButton *loginButton;
//viewController.m - (void)viewDidLoad { [super viewDidLoad]; //ログインボタンを生成し、permissionを設定。この場合はstoryboardを使用して作成してます。 _loginButton = [[FBSDKLoginButton alloc]init]; self.loginButton.readPermissions = @[@"public_profile",@"user_friends",@"email"]; }
それでfacebookの情報を取得するにはこのようにします。
if ([FBSDKAccessToken currentAccessToken]) { NSLog(@"exist access token"); //go to next [[[FBSDKGraphRequest alloc]initWithGraphPath:@"me" parameters:nil]startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { NSLog(@"fetchUser%@",result); NSLog(@"fetchUserID%@",result[@"id"]); }];
ログをみてみると
fetchUser{ email = "********@gmail.com"; "first_name" = Naoya; gender = male; id = 855858164510183; "last_name" = Hanai; link = "https://www.facebook.com/app_scoped_user_id/855858164510183/"; locale = "en_US"; name = "Naoya Hanai"; timezone = 9; "updated_time" = "2015-05-30T00:43:22+0000"; verified = 1; }
こんな感じで出てきますので
NSLog(@"fetchUserID%@",result[@"id"]);
という風に取得しましょう。
プロフィール写真だけなぜか別で
FBSDKProfilePictureView* _profileView = [[FBSDKProfilePictureView alloc]init]; _profileView.profileID = result[@"id"];//userID
で FBSDKProfilePictureViewのprofileIDにuserIDを入れてあげると表示できるようになります。