Я пытаюсь получить доступ к Facebook для публикации изображений на странице из приложения iOS. Но пока я даже не могу заставить его дать мне нужные мне разрешения.
Я много искал, включая Процедура публикации iOS 6 в Facebook заканчивается ошибкой remote_app_id не соответствует сохраненному идентификатору и Facebook Graph Api Загрузка фотографий на фан-страницу (IOS), но ничто в тех или иных сообщениях не решает эту проблему.
Вот бит авторизации кода:
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSDictionary *options = @{
ACFacebookAppIdKey: @"xxxxxxxxxxxxxx",
ACFacebookPermissionsKey: @[@"manage_pages"],
ACFacebookAudienceKey: ACFacebookAudienceEveryone
};
[accountStore requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error)
{
if (granted)
{
NSDictionary *options = @{
ACFacebookAppIdKey: @"xxxxxxxxxxxxxx",
ACFacebookPermissionsKey: @[@"photo_upload"],
ACFacebookAudienceKey: ACFacebookAudienceEveryone
};
[accountStore requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error)
{
if (granted)
{
// then do the upload - but it never gets here
}
else
{
// handle error - this is where it ends up
}
}];
}
else
{
// handle error
}
}];
Как было предложено в некоторых других сообщениях об этом, я сначала запрашиваю разрешения на чтение, а затем на запись. Он получает разрешение manage_pages в порядке.
Когда я запрашиваю разрешение photo_upload, всплывает предупреждение о разрешениях Facebook с просьбой подтвердить, что он может публиковать сообщения от моего имени, и я нажимаю «ОК», но этот блок запроса разрешения возвращается с предоставленным значением FALSE.
Полное сообщение об ошибке, которое я получаю в этот момент, звучит так: «Сервер Facebook не смог выполнить этот запрос на доступ: недопустимое разрешение: photo_upload».
На сайте приложения Facebook я думаю, что сделал все, что нужно: я создал свое приложение и получил AppId, добавил iOS в качестве платформы и установил BundleId на тот же, который использует приложение iOS, и на вкладке «Дополнительно». установите его как родное приложение.
У кого-нибудь есть идеи, что я делаю неправильно?