Размещение фотографии на фан-странице Facebook от имени пользователя. iOS Facebook SDK 3.1


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

FBRequest *uploadPhotoRequest = [FBRequest requestWithGraphPath:@"/${FAN_PAGE_ID}/photos/" parameters:[NSDictionary dictionaryWithObjectsAndKeys:self.imageToShare, @"source", nil] HTTPMethod:@"POST"];

Изображение переходит непосредственно к временной шкале пользователя, а не к странице.

Но когда я отправляю ссылку:

FBRequest *request = [FBRequest requestWithGraphPath:@"/${FAN_PAGE_ID}/feed/" parameters:[NSDictionary dictionaryWithObjectsAndKeys:@"http://stackoverflow.com", @"link", nil] HTTPMethod:@"POST"];

Корректно ссылайтесь на сообщения на странице facebook.

Чтобы открыть сеанс, я использую код:

[FBSession openActiveSessionWithPermissions:[NSArray arrayWithObjects:@"publish_stream", @"photo_upload", nil]
                               allowLoginUI:YES
                          completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
...
                          }];

Я знаю, что openActiveSessionWithPermissions устарел, так как он используется для одинакового поведения системы единого входа в iOS 5 и 6.

ОБНОВЛЕНИЕ

Или есть возможность загрузить фото с подменой токена доступа? Использование токена доступа к странице вместо токена доступа пользователя. Если да, то как я могу программно получить токен доступа к странице, не заставляя пользователя входить в систему как администратор страницы?

Что бы вы посоветовали мне сделать?
Спасибо!

БР. Юджин.


person dymv    schedule 02.10.2012    source источник


Ответы (1)


https://developers.facebook.com/docs/reference/api/page/#photos говорит,

«Вы можете публиковать фотографии на Стене Страницы, выполнив HTTP-запрос POST к PAGE_ID/photos с разрешениями publish_stream и manage_pages […]»

Похоже, что «обычный» пользователь не может публиковать изображения на стене страницы через API.

person CBroe    schedule 02.10.2012
comment
Спасибо за ваш ответ! Я нашел эту вещь webspeaks.in/2011/ 12/upload-photos-to-facebook-fan-page.html, и с его помощью я могу загрузить фотографию в альбом Страницы Facebook. Я хочу такого же поведения в приложении iOS. Вы знаете, как они это делают? - person dymv; 03.10.2012
comment
Сначала они получают токен доступа к странице. Таким образом, вам нужно сначала получить разрешение manage_pages от пользователя (конечно, пользователь должен быть администратором этой страницы), а затем получить токен доступа к странице для загрузки фотографии. - person CBroe; 04.10.2012
comment
@CBroe: Можете ли вы добавить примеры кода, как получить разрешение manage_pages? - person Raptor; 27.06.2013
comment
@ShivanRaptor: вы просто запрашиваете это через параметр scope в процессе входа в систему. - person CBroe; 27.06.2013