【问题标题】:Telegram bot: sendingPhoto method with pythonTelegram bot:使用 python 发送照片方法
【发布时间】:2019-10-06 20:21:52
【问题描述】:

我正在编写一个测试电报机器人。 我正在尝试测试功能并熟悉文档。 我在 AWS lambda 中编写了一个简单的代码,并且我也在使用 AWS Api 网关。 我的程序将处理你提供给电报机器人的数据,这个机器人会用一个简单的标题把它发回给你。 该程序适用于文本,但是当我将照片发送给机器人时,它不会返回带有标题的照片。 我试图用文档规则来编写它 这是我的代码:

import json
import request
TELE_TOKEN = "my token"
URL = ""
def sending_photo(chat_id, file_id):
     url = URL+ "sendPhoto?chat_id{}&file_id{}&caption{}".format(chat_id,file_id,"TEST CAPTION")
     requests.get(url)

def lambda_function(event):
      message = json.loads(event['body'])
      chat_id = message['message']['chat']['id']
      file_id_export = message['message']['voice']['file_id']
      sending_photo(chat_id, file_id_export)
      return {
           'statusCode':200
           }

【问题讨论】:

  • 我建议考虑使用一个库来处理与 Telegram API 的通信,这样可以为您省去很多麻烦,让您专注于功能开发,而不是在 URL 中设置参数。 BotogramTelepotpython telegram bot 就是很好的例子。
  • 不,我不想为此使用库,我需要从基础资源中学习它

标签: python aws-lambda telegram-bot


【解决方案1】:

当您将 JSON 转换为字典时,它变成了一个嵌套字典,而照片 JSON 不同于文本,甚至不同于视频和语音。 file_id_export 应该是:

  • 照片:

    file_id_export = message['message']['photo'][0]['file_id']
    
  • 视频(声音相同):

    file_id_export = message['message']['video']['file_id']
    

【讨论】:

    猜你喜欢
    • 2021-10-03
    • 2015-09-20
    • 1970-01-01
    • 2017-06-06
    • 2021-04-24
    • 2018-11-12
    • 2015-11-24
    • 2016-07-09
    • 2015-11-26
    相关资源
    最近更新 更多