【问题标题】:Reset unread message count for Facebook page (Facebook Graph API)重置 Facebook 页面的未读消息计数(Facebook Graph API)
【发布时间】:2019-04-21 05:30:29
【问题描述】:

我正在尝试构建一个小型 Python 工具,将我们的帮助台软件 (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))

也许可以将对话从常规收件箱移至“完成”文件夹,这样可以解决这个问题?

【问题讨论】:

    标签: python-3.x facebook facebook-graph-api


    【解决方案1】:

    在做了一些研究后,我在这里找到了解决方案: FbChatBot mark message as Read

    您无法更新未读计数,但您可以使用“移交协议”让所有对话自动移至“DONE”文件夹,让它们不再出现在您的收件箱中:https://developers.facebook.com/docs/messenger-platform/handover-protocol

    应用程序必须设置为“主要接收者”,“页面收件箱”设置为“次要接收者”。

    现在所有对话都将移至“完成”。只需确保在 messenger webhook 设置中设置正确的权限即可:

    没有它不会有错误,但消息会留在收件箱中并且不起作用。

    【讨论】:

      猜你喜欢
      • 2022-08-18
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 2012-04-26
      • 2017-07-30
      相关资源
      最近更新 更多