Как избежать публикации дубликата при публикации в Facebook? - PullRequest
5 голосов
/ 11 января 2012

Используя Graph API, я публикую историю посредством POSTing в соединении / me / feed. Я получаю обратно успех или ошибку в Facebook. Все идет нормально. Время от времени API занимает много времени, и время соединения истекает. В этом случае я точно не знаю, был ли сбой запроса успешным (т. Е., Возможно, запрос никогда не достиг Facebook, или, возможно, он был успешным, и результат никогда не возвращался мне). Как вы справляетесь с этой ситуацией?

Подробнее: Я публикую много постов в Facebook и Twitter, поэтому ситуация с таймаутом случается часто. С Twitter это решение легко. Если запрос истекает в первый раз, я просто попробуйте снова. Твиттер обнаруживает дубликаты, поэтому, если сообщение было успешно опубликовано в первый раз, во втором запросе я получу сообщение об ошибке «Статус дубликата», и я знаю, что мне больше не нужно повторять попытку.

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

1 Ответ

0 голосов
/ 11 января 2012

Я получаю от Facebook информацию об успехе или ошибке.

Хммм.При публикации в Graph API я получаю сообщение об ошибке или идентификатор сообщения.Я никогда не вижу сообщения об успехе.Какой SDK вы используете для API?

Время от времени API занимает много времени, и время соединения истекает.

Обычно, когда дела идут медленно, это связано с тем, что channelUrl не указан.См. https://developers.facebook.com/docs/reference/javascript/

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

...