Подтвердить что ты не робот

FBSDKLoginManager logInWithReadPermissions?

Я использую FBSDKLoginButton, чтобы разрешить вход пользователя с помощью Facebook и используя FBSDKLoginButton.readPermissions = @[@"public_profile",@"email",@"user_likes",@"email",@"user_birthday"];

чтобы запросить разрешения, но мне нужно еще одно разрешение, которое будет публиковать_замены, которые я должен использовать FBSDKLoginManager

с

 logInWithReadPermissions:@[@"public_profile",@"user_likes",@"user_birthday"] 
logInWithPublishPermissions:@[@"publish_actions"]

но это по какой-то причине влияет на мое разрешение ", некоторые из моих прав отсутствуют, проверьте изображение

Код: -

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
                [login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                    if (error) {
                        // Process error
                    } else if (result.isCancelled) {
                        // Handle cancellations
                    } else {
                        // If you ask for multiple permissions at once, you
                        // should check if specific permissions missing
                        if ([result.grantedPermissions containsObject:@"publish_actions"]) {
                            // Do work
                        }
                    }
                }];

[login logInWithReadPermissions:@[@"public_profile",@"",@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    if (error) {
        // Process error
    } else if (result.isCancelled) {
        // Handle cancellations
    } else {
        // If you ask for multiple permissions at once, you
        // should check if specific permissions missing
        if ([result.grantedPermissions containsObject:@"email"]) {
            // Do work
        }
    }
}];

Результат: -

** требуется много времени, чтобы перенаправить пользователя на вид разрешений? и не все мое разрешение появляется пользователю **

enter image description here

Примечание: - Я знаю, что это предупреждение означает, что мне нужно отправить свое приложение для просмотра, но это не то, о чем я сейчас спрашиваю.

Обновление

Когда я пробовал решение "Dheeraj Singh", но в этом случае пользователь будет перенаправляться дважды в Facebook в первый раз, чтобы получить публикацию, чтобы получить плохую правку электронной почты и дня рождения.

4b9b3361

Ответ 1

Facebook Login предоставляет вашему приложению доступ к общедоступному профилю пользователя, списку друзей и адресу электронной почты. Эти три разрешения не требуют пересмотра. Вместо этого пользователи вашего приложения будут выбирать, хотят ли они предоставить доступ к этой информации.

Чтобы ваше приложение получало доступ к дополнительным элементам профиля Facebook Facebook (разрешения на чтение) или публиковать контент в Facebook от их имени (разрешения на запись), вам необходимо отправить его на рассмотрение.

Обратитесь к: https://developers.facebook.com/docs/apps/review#submitlogin

Обновлено:

Приложения должны отделять запрос разрешений на чтение и публикацию.

 FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];

    [login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
        if (error) {
            // Process error
        } else if (result.isCancelled) {
            // Handle cancellations
        } else {
            // If you ask for multiple permissions at once, you
            // should check if specific permissions missing
            if ([result.grantedPermissions containsObject:@"publish_actions"]) {
                // Do work

                [login logInWithReadPermissions:@[@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                    if (error) {
                        // Process error
                    } else if (result.isCancelled) {
                        // Handle cancellations
                    } else {
                        // If you ask for multiple permissions at once, you
                        // should check if specific permissions missing
                        if ([result.grantedPermissions containsObject:@"user_birthday"]) {
                            // Do work

                            NSLog(@"Permission  2: %@",result.grantedPermissions);
                        }
                    }
                }];

            }
        }
    }];

Вам не нужен public_profile в разрешении на чтение, как если бы ему было разрешено публиковать_акции, он также получает разрешение для public_profile.

Ответ 2

Как я заметил, вы пытаетесь использовать " user_likes", " user_birthday", " public_profile" и " strong > publish_actions.

С 1 мая 2015 года в facebook включен только " public_profile", "email" и " user_friends" доступны без процесса утверждения.

Для " user_likes", " user_birthday" и " publish_actions" вам нужно получить подтверждение от facebook.

В процессе просмотра вы можете получить справку Обзор Facebook.

Ответ 3

У меня также такая же проблема с разрешением user_posts в течение двух недель, но после некоторого поиска я нашел решение для этого, если у вас все еще есть эта проблема, выполните следующие действия.

  • Перейдите в http://developers.facebook.com и войдите в свою учетную запись разработчика.
  • Выберите свое приложение и перейдите в раздел Роли.
  • Добавьте тестер в раздел Тестеры.
  • Затем переустановите приложение и войдите в систему, используя эту учетную запись.
  • Теперь вы пытаетесь получить требуемые разрешения от тестера, и тестер увидит список всех разрешений.

Ответ 4

var login = FBSDKLoginManager()


@IBAction func fbBtnPressed(_ sender: AnyObject) {

    login.logIn(withReadPermissions: ["email"], from: self) { (FBSDKLoginManagerLoginResult, Error) in

        if Error != nil {
            print("O Login via Facebook Falhou. Erro: \(Error)")
        } else {
            let accessToken = FBSDKAccessToken.current().tokenString
            self.gotoScreen() //Function for screen after login succesfull 
            print("Acesso concedido ao Facebook. \(accessToken)")
        }

    }

}