如何回答Telegram内联查询?

时间:2017-04-17 09:59:06

标签: telegram telegram-bot python-telegram-bot

我的Telegram机器人无法获得内联查询的答案。

以下是一些处理内联查询的代码:

urlid = url['result'][0]['inline_query']['id']
            str(urlid)
            fromid = url['result'][0]['inline_query']['from']['id']
            str(fromid)
            query = url['result'][0]['inline_query']['query']
            if query == '/getinfo':  
                r = requests.get('http://' + address + ':' + port + '/')
                D = r.json() 
                message_text = str(len(D['info']))
                results = [{'type': 'article', 'message_text': message_text, 'id': '1', 'title': 'count'}]
                json.dumps(results)
                data = {'inline_query_id': urlid, 'results': results}
                bot.answerInlineQuery(data)

这是答案功能:

def answerInlineQuery(self, data):
        global url
        print('ok, we in answer func')
        sendurl = url + 'answerInlineQuery'
        requests.post(sendurl, data)

如您所见,此处有一个功能标记转换:print('ok, we in answer func')。当我输入内联查询时,我在控制台中看到此消息。但对该请求的回应并没有发给Telegram。这意味着请求处理程序工作正常,但在响应函数中出错了。你能告诉我我的错误是什么吗?

UPD:我在"input _message_content"词典中添加了results键,但这并没有解决我的问题。

1 个答案:

答案 0 :(得分:0)

您的results几乎没有问题,应采用以下格式:

{"id": "1", "input _message_content": {"message_text": "Hello"}}

您可以查看官方reference了解详情。