电报api。通过media_group_id获取所有上传的照片

时间:2018-05-04 17:13:02

标签: html telegram telegram-bot python-telegram-bot php-telegram-bot

我将一些照片发送到我的电报机器人组。如何获取file_id我上传的所有照片?

我使用webhooks,但响应中不包含有关所有照片的任何数据,只包含有关上次上传照片和media_group_id的一些数据。如何获取我上传的群组照片的所有file_id

响应: enter image description here

2 个答案:

答案 0 :(得分:1)

Telegram Bot API不会给您的Web挂钩任何有关媒体组中每个项目顺序的可靠信息。 https://core.telegram.org/bots/api#message

建议:

  1. 如果漫游器正在进行私人聊天,请将传入的file_id保存到其media_group_id中。每当media_group_id进行更改时,您将拥有所有需要使用的内容。以其他方式吸引用户,以便您可以快速确定media_group_id的更改并对该处理进行快速响应。

  2. 如果漫游器正在群聊中,请针对用户file_idid保存传入的media_group_id,并类似地监视media_group_id和用户{ {1}}采取行动。

当解决方案开始变得太复杂而无法满足我的喜好时,我宁愿回到我需要的基本原因,也许会发现我不需要做API负担不起的事情,例如“获取所有上传的照片”由id”。也许我可以在更新流中单独处理它们。

提示:如果媒体组中有一个media_group_id,而您只关心该组中的第一个媒体项,那么监视传入消息的captionmedia_group_id就足够了

caption

答案 1 :(得分:0)

好的,这种方式不简单不优雅,但它正在发挥作用。

  1. 我们需要在webhook响应media_group_id元素中看到 - 这意味着这是一组媒体。
  2. 如果第一点为真 - 将有关此媒体的数据保存在自己的服务器上(数据必须包含media_group_id
  3.   

    示例:[“media_group_id”=> [[关于照片的一些数据]]]

    1. 当下一个webhook到来时,我们需要看到他的media_group_id,如果它是相同的 - 好吧,把他加到阵列......
    2.   

      示例:[“media_group_id”=> [[有关照片的一些数据],[有关照片的一些数据]]

      如果没有 - 好的,创建一个新的数组元素:

        

      示例:[“media_group_id”=> [[有关照片的一些数据]],“media_group_id2”=>   [[关于照片的一些数据]]]

      1. 所以我们得到了一个数组,其中包含有关一个(或多个)组照片的所有数据。
      2. 嗯...我不喜欢这种方式,但是如何变得更好?