【问题标题】:How to get Telegram InlineQuery-object?如何获取 Telegram InlineQuery 对象?
【发布时间】:2017-09-09 05:59:47
【问题描述】:

我想教我的机器人响应内联查询。问题是要发送对内联查询的响应,您需要具有某些请求参数(至少 id 和查询文本)。但是如何获取这些参数呢?在将 answerInlineQuery 发送到 Telegram 服务器之前,我在哪里可以得到它们?

此问题未包含在文档中。我正在尝试从 getUpdate-request 的结果中提取这些参数:

def getUpdates (self):
        getup = URL + 'getUpdates'
        ...
        #some valid code to get update-JSON
        return url

def answerInlineQuery(self, inline_query_id, results):
        send = url + 'answerInlineQuery?inline_query_id=' + str(inline_query_id) + '&&' + 'results=' + results
        requests.get(send)
        ....

if (url != None) and ('inline_query' in url):
            inid = url['result'][0]['inline_query']['id']
            bot.set_inline_upd_id = int(inid) 
            fromid = url['result'][0]['inline_query']['fromid']
            query = url['result'][0]['inline_query']['query']
            if textMessage == '/modemscount':   
                r = requests.get('http://' + serverAddress + ':' + serverPort + '/api/v0/modem/')
                modemsDict = r.json() 
                message_text = str(len(modemsDict['modems']))
                inline_query_id = bot.inline_upd_id 
                results = json.dumps({'type':article, 'input_message_content':{'message_text':message_text}, 'id':1, 'title':count})
                bot.answerInlineQuery(inline_query_id, results)

但是这段代码不起作用。没有错误消息。就在用户编写内联查询时,机器人根本没有反应。

【问题讨论】:

    标签: python telegram-bot


    【解决方案1】:

    您可以通过与get updates 相同的方式获得这些queryid。因此,请确保您的 getUpdates 确实有效。也许您设置了一个 webhook 并且 getUpdates 不再返回更新?在这种情况下删除 webhook。

    【讨论】:

    • getUpdates 确实有效,因为机器人会响应简单的请求。不使用 Webhook。 /setinlines 已安装。但是当我在与随机用户的聊天中编写内联查询并检查它时(即使没有代码,只需通过 url-query),'inline_query' 键不会出现在 getUpdates 返回的 JSON 对象中。
    • 我刚刚制作了一个新机器人,它按预期工作。消息更新类似于{ "update_id": "...", "message": "..." },内联更新类似于{ "update_id": "..", "inline_query" : "..." }
    • 是的,这就是问题的解决方案。太感谢了!创建一个类似的机器人后,只替换令牌,我得到了正确的 InlineQuery-object。
    【解决方案2】:

    解决方案:创建一个新的类似机器人,仅替换令牌。 InlineQuery-mod 将正常工作。 (这是我的第一个机器人。也许,这解释了它的异常行为。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2016-04-04
      • 2015-12-02
      • 2020-07-04
      • 2017-03-31
      • 2017-09-29
      • 1970-01-01
      相关资源
      最近更新 更多