Я пытаюсь получить кучу информации из facebook от пользователя, используя приложение, используя синтаксический анализ и sdk facebook, но я не смог сделать это успешно.Как правильно запросить разрешения на facebook ios
Сначала я проверяю, вошел ли пользователь в систему, и если они не отображают контроллер просмотра синтаксического анализа с разрешениями facebook.
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (![PFUser currentUser] || ![PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]) {
NSArray *permissionsArray = @[@"public_profile", @"user_birthday", @"user_photos", @"user_about_me", @"user_likes", @"user_relationship_details"];
LoginViewController *logInViewController = [[LoginViewController alloc] init];
[logInViewController setDelegate:self];
[logInViewController setFacebookPermissions:[NSArray arrayWithObjects:permissionsArray, nil]];
[logInViewController setFields:PFLogInFieldsFacebook | PFLogInFieldsDismissButton];
[self presentViewController:logInViewController animated:YES completion:NULL];
} else {
[self getUserInfo];
}
}
Затем, после входа пользователя в систему, я пытаюсь получить следующие разрешения, например.
-(void)getUserInfo {
FBSDKGraphRequest *requestMe = [[FBSDKGraphRequest alloc]initWithGraphPath:@"me" parameters:nil];
FBSDKGraphRequest *requestBirthday = [[FBSDKGraphRequest alloc]initWithGraphPath:@"me/user_birthday" parameters:nil];
FBSDKGraphRequest *requestPhotos = [[FBSDKGraphRequest alloc]initWithGraphPath:@"me/photos" parameters:nil];
FBSDKGraphRequest *requestAboutMe = [[FBSDKGraphRequest alloc]initWithGraphPath:@"me/about_me" parameters:nil];
FBSDKGraphRequest *requestLikes = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/me/likes"
parameters:nil
HTTPMethod:@"GET"];
FBSDKGraphRequest *requestRelationship = [[FBSDKGraphRequest alloc]initWithGraphPath:@"me/relationship_details" parameters:nil];
FBSDKGraphRequestConnection *connection = [[FBSDKGraphRequestConnection alloc] init];
[connection addRequest:requestMe completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
userName = result[@"name"];
userGender = result[@"gender"];
userId = result[@"id"];
if (connection) {
[self setMe];
}
}];
[connection addRequest:requestBirthday completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
}];
[connection addRequest:requestPhotos completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
}];
[connection addRequest:requestAboutMe completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
}];
[connection addRequest:requestLikes completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
}];
[connection addRequest:requestRelationship completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
}];
[connection start];
}
В requestMe
работает отлично, и я получить информацию пользователей, однако, когда я получаю NSLog для вывода результата любых других разрешений, его всегда null
и я не уверен, что я делаю неправильно. В документации говорится, что приложение не должно проходить проверку, если разработчик хочет получить информацию о себе, поэтому проблема заключается не в том, что приложение не было просмотрено.
Почему я не могу получить информацию? Это потому, что я неправильно запрашиваю информацию? Любая помощь будет принята с благодарностью!
Я думаю, что это не проблема на ур кода стороне. Пожалуйста, убедитесь, что ваша учетная запись facebook связана с FacebookID. Вы добавили пользователя тестера в настройку facebook? вы можете использовать access_token для запуска facebookGraph. – Bejibun
Да, я знаю об этом. Я могу войти в мое приложение и получить некоторую базовую информацию, но я ищу, чтобы исправить другие разрешения, которые я прошу, чтобы они были доступны. – Josh
Вы получили журнал ответов с сервера? Получаете ли вы access_granted для получения специального разрешения? – Bejibun