2017-04-17 8 views
1

My 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') 여기

인라인 쿼리를 처리하는 코드의 일부입니다 . 그리고 인라인 쿼리를 입력하면 콘솔에이 메시지가 표시됩니다. 그러나 요청에 대한 응답은 전보에 오지 않습니다. 이는 요청 핸들러가 정상적으로 작동하지만 응답 함수에 문제가 있음을 의미합니다. 내 실수가 뭔지 말해 줄래?

UPD : results dict에 "input _message_content" 키를 추가했지만 문제가 해결되지 않았습니다.

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

당신은 자세한 내용은 공식 reference을 볼 수 귀하의 results

답변

0

작은 문제가,이 형식이어야합니다.

+0

맞아요, 고칠 수는 있지만 어쨌든 작동하지 않습니다. – ErvingGoffman

+0

@ErvingGoffman 당신은 requests.get없이이 방법을 시도 할 수 있습니까? – Sean

+0

요청 본문이나 쿼리에 대한 문제인지 확인할 수 없습니다. 나는 당신이 세부 사항을 위해 전보 오류 출력을보아야한다고 생각한다. – Sean