FBSDKLoginKitバージョン 4.1.0を使用しています。
Facebook でログインすると、 FBSDKLoginManagerLoginResult
isCancelled は true で、アクセス トークンは nil です。info.plist ですべてを構成し、 AppDelegateでコードを記述しました。
何が足りないのか教えてください。
ありがとう。
FBSDKLoginKitバージョン 4.1.0を使用しています。
Facebook でログインすると、 FBSDKLoginManagerLoginResult
isCancelled は true で、アクセス トークンは nil です。info.plist ですべてを構成し、 AppDelegateでコードを記述しました。
何が足りないのか教えてください。
ありがとう。
こんな感じでやってみてください!! info.plistが正しく構成されていることを願っています。
static NSString *kFBLoginRequestIdKey = @"userID";
static NSString *kFBUserInfoIdKey = @"id";
static NSString *kFBLoginRequestAccessTokenKey = @"accessToken";
static NSString *kFBLoginRequestAuthorizationKey = @"authResponse";
NSArray *fbReadPermissions = @[@"public_profile", @"email", @"user_friends"];
NSArray *fbUserInfoParams = @{@"fields": @"id, name, email, birthday, picture"};
[self doFacebookLogin];
-(void)doFacebookLogin {
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logOut];
[loginManager logInWithReadPermissions:fbReadPermissions fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
NSLog(@"Error %@", error);
}
else if (result.isCancelled) {
NSLog(@"Cancelled by user");
}
else {
[self getFBUserProfile:^(NSMutableDictionary *requestDict) {
if(requestDict.count > 0) {
// do stuff here
}
}];
}
}];
}
-(void)getFBUserProfile:(void(^)(NSMutableDictionary *requestDict))completionBlock {
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:fbUserInfoParams] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
NSMutableDictionary *requestDict = [[NSMutableDictionary alloc] init];
if(!error) {
NSLog(@"%@",result);
NSDictionary *userData = (NSDictionary *)result;
NSString *userId = [userData valueForKey:kFBUserInfoIdKey];
NSString *token = [FBSDKAccessToken currentAccessToken].tokenString;
NSDictionary *params = @{kFBLoginRequestIdKey: userId, kFBLoginRequestAccessTokenKey: token};
[requestDict setObject:params forKey:kFBLoginRequestAuthorizationKey];
// NSString *profileURL = [[[userData valueForKey:@"picture"] valueForKey:@"data"] valueForKey:@"url"];
}
completionBlock (requestDict);
}];
}