проблемы с использованием facebook iphone api для публикации изображения и текста

Я пытался использовать facebook iphone api для публикации изображения и некоторого текста из моего приложения (например, используя вызов FBRequest: @"facebook.stream.publish" с соответствующими параметрами.

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

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


person Joey    schedule 18.06.2010    source источник


Ответы (4)


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

http://developers.facebook.com/show_bug.cgi?id=7345

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

person Joey    schedule 18.06.2010

То же самое здесь, я реализовал обмен изображениями и текстом на Facebook на основе iphone, используя их собственный API несколько дней назад, и поведение изменилось от, казалось бы, нормального до неустойчивого и непредсказуемого.

Что меня действительно раздражает, так это то, что в симуляторе это всегда работает. Вы тоже это видели?

(кстати, я на самом деле не загружаю изображение в facebook, я просто публикую сообщение со ссылкой на изображение, размещенное мной)

Возможно, вам лучше придерживаться простого бэкэнда, которым вы можете полностью управлять. Решение, которое я использую для социальных сетей без (стабильного) iphone api, состоит в том, чтобы загрузить изображение на мой сервер, а затем просто добавить UIWebView и позволить серверу обрабатывать все OAuth и публикации. UIWebView перезванивает вашему приложению

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

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

Основные преимущества: 1) вы можете исправить вещи, когда facebook их сломает 2) есть сотни проверенных библиотек для использования

person mvds    schedule 21.06.2010

ОБНОВЛЕНИЕ: вы можете добавить в FBStreamDialog.m проверку, если _session.apiKey не равен нулю. Если это так, то словарь останется пустым, а пост будет отображаться пустым экраном.

Пример кода, предоставленный facebook, делает:

FBStreamDialog* dialog = [[[FBStreamDialog alloc] init] autorelease];

см. http://wiki.developers.facebook.com/index.php/Facebook_iPhone_SDK

В этом случае инициализация FBDialog подхватывает глобальный объект сеанса, но время от времени явно дает сбой.

Когда вы сами управляете сеансом и используете:

[[[FBStreamDialog alloc] initWithSession:self.fb_session] autorelease];

Все работает нормально.

person mvds    schedule 21.06.2010

Существует небольшая путаница между Facebook API и SDK.

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

person Jonathan.    schedule 22.03.2011