Мы, в ZoomSphere , обеспечиваем планирование, составление расписания и автоматическую публикацию контента социальных сетей на выбранной социальной платформе (включая Facebook).
Так в чем проблема?
Некоторые из наших клиентов сообщали нам о проблемах с видимостью сообщений FB на их временной шкале. Я мог бы объяснить весь процесс публикации, но короче говоря, мы просто отправляем запрос в Graph API с информацией о создаваемом посте (то есть его содержимым, некоторыми другими метаданными и, в основном, запланированной датой и временем публикации).
99 процентов запланированных сообщений публиковались нормально, но, да… в Facebook все еще существовали некоторые сообщения, которые были доступны либо напрямую (и невидимы на временной шкале) в браузере с открытием URL-адреса https : //facebook.com/ {response-post-id} или были недоступны вообще.
Когда я говорю о том, что «эти сообщения существуют на Facebook», я имею в виду, что мы смогли связаться с ними через FB Graph API с HTTP-запросом GET, чтобы:
https://graph.facebook.com
/v3.1/{response-post-id}?fields=is_published,is_hidden,is_expired,scheduled_publish_time,created_time,updated_time
Если вы попробуете, вы получите ответ, который не полностью согласован (см. Ответ ниже).
- для ключа is_published установлено значение false, даже если сообщение опубликовано
- для ключа is_hidden установлено значение true , но мы можем получить доступ к сообщению
- key schedule_publish_time все еще отвечает (и это уже давно в прошлом), даже если сообщение уже опубликовано
{ "is_published": false, "is_hidden": true, "is_expired": false, "scheduled_publish_time": 1540016800, "created_time": "2018–09–27T12:31:05+0000", "updated_time": "2018–09–27T12:31:05+0000", "id": "{response-post-id}" }
Ключ schedule_publish_time присутствует только в том случае, если публикация сообщения запланирована на будущее. Если значение (временная метка UNIX) меньше NOW () или если вы, например, отмените план, schedule_publish_time больше не присутствует = ›это точка несоответствия, показанная выше.
Об этом сообщается, но…
Это известная проблема для инженеров Facebook. Но они решили не исследовать исправление в настоящее время, и все отчеты закрыты:
Решение
Вы можете идентифицировать эти несогласованные сообщения по значениям ключей (is_published, is_hidden, schedule_publish_time), описанных выше, а затем обновить их с помощью запроса HTTP POST для Графический API:
https://graph.facebook.com
/v3.1/{response-post-id}
С телом вроде:
{ "is_published": true, "backdated_time": 1540016800, "timeline_visibility": "normal", }
backdated_time следует указать в качестве метки времени для ранее запланированного выпуска (в противном случае запись на временной шкале будет отображаться как «опубликовано сейчас»)
Надеюсь, это кому-то поможет.