Сброс счетчика непрочитанных сообщений для страницы Facebook (API Graph Facebook) - PullRequest
0 голосов
/ 21 апреля 2019

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

Я использую конечную точку беседы, чтобы перехватить всю непрочитанную беседу:

    conversations = api.get_object('[page_id]/conversations?fields=messages.limit(20){message,from},name, unread_count,message_count')

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

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

Подумал об использовании Selenium, чтобы просто выполнять эту работу 1 раз в день и чистить почтовый ящик, но на самом деле это не нравится. Есть идеи, как это решить? Может быть, я пропустил какую-то функцию API, которая может помочь?

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

data = {"recipient": {"id": "xxxxx"}, "message": {"text": message}}     

response = requests.post('https://graph.facebook.com/v3.2/me/messages?access_token=xxxx', headers=headers, data=json.dumps(data))

Может быть, можно переместить беседу из обычной папки «Входящие» в папку «Готово», которая могла бы ее решить?

1 Ответ

0 голосов
/ 22 апреля 2019

После некоторого исследования я нашел решение здесь: FbChatBot пометить сообщение как прочитанное

Вы не можете обновить счетчик непрочитанных сообщений, но вы можете позволить всем разговорам автоматически перемещаться в папку «ГОТОВО», чтобы они больше не отображались в вашей папке входящих сообщений с помощью «протокола передачи обслуживания»: https://developers.facebook.com/docs/messenger-platform/handover-protocol

Приложение должно быть установлено как «Основной получатель» и «Входящие страницы» как «Вторичный получатель».

Messenger Platform Settings

Все разговоры теперь будут переведены в "ГОТОВО". Просто убедитесь, что в настройках мессенджера установлены правильные разрешения:

App Permissions

Без этого не будет ошибок, но сообщения останутся в папке входящих и не будут работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...