iOS Facebook запросить больше разрешений заставляет меня войти снова

Я пытаюсь создать общий доступ с помощью функции Facebook в своем приложении.

Следуя инструкциям на сайте разработчиков Facebook, я настроил свой проект, и вход в систему работает нормально.

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

У меня есть, например, следующий активный сеанс:

2014-06-02 10: 44: 56.729 facebook [68183: 60b] activeSession:, expirationDate: 2014-07-28 14:50:04 +0000, refreshDate: 2014-05-30 11:03:01 +0000, предпринято ReefreshDate: 0001-12-30 00:00:00 +0000, права доступа:(установлено, "public_profile")>

и мой код, чтобы попытаться поделиться это:

[FBRequestConnection startWithGraphPath:@"me/permissions"
     completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
          if (!error){
            NSDictionary *permissions= [(NSArray *)[result data] objectAtIndex:0];
            if (![permissions objectForKey:@"publish_actions"]){
              // Permission hasn't been granted, so ask for publish_actions
              [FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                                                            defaultAudience:FBSessionDefaultAudienceFriends
                                                                          completionHandler:^(FBSession *session, NSError *error) {
                 if (!error) {
                    if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound){
                       // Permission not granted, tell the user we will not share to Facebook
                       NSLog(@"Permission not granted, we will not share to Facebook.");
                 } else {
                      // Permission granted, publish the OG story
                      [self requestWithGraphPath:@"me/feed" andParams:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"http://www.in.gr",@"url",@"messageTitle",@"Titleos",@"description",@"description", nil] andHttpMethod:@"POST"];
                                                                                  }

                                                                              } else {
                                                                                  // An error occurred, we need to handle the error
                                                                                  // See: https://developers.facebook.com/docs/ios/errors
                                                                                  NSLog(@"Encountered an error requesting permissions: %@", error.description);
                                                                              }
                                                                          }];

                                  } else {
                                      // Permissions present, publish the OG story

                                      [self requestWithGraphPath:@"me/feed" andParams:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"http://www.in.gr",@"url",@"messageTitle",@"Titleos",@"description",@"description", nil] andHttpMethod:@"POST"];
                 }

            } else {
            // An error occurred, we need to handle the error
            // See: https://developers.facebook.com/docs/ios/errors
            NSLog(@"Encountered an error checking permissions: %@", error.description);
         }
}];

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

Как я могу успешно запросить необходимые для публикации разрешения?

1 ответ

Оказывается, что при использовании последней версии Facebook SDK (я думаю, 3.1+) действия публикации работают только для проверенных и отправленных приложений.

Если вы хотите протестировать его, вы должны сделать тестовую версию своего приложения с панели инструментов Facebook.

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

Другие вопросы по тегам