2016-07-06 2 views
0

전보 인라인 봇에 메시지를 보내 그것은 나에게 업데이트를 제공하지만, 나는이 같은 텍스트 보낼 InlineQueryResult어떻게 내은 webhook을 설정 한

php로 보내는 방법을 모르는합니다 :

aaaaaaaaaaabbbbbbbbbcccccc 

어떻게 PHP 곱슬로 보낼 수 있습니까?

$token = 'bot###'; 
$chat_id = '###'; 

$keyboardl = ['inline_keyboard' => [[['text' => "one", 'callback_data' => "1"],['text' => "two", 'callback_data' => "2"]]]]; 

$data = array("chat_id" => $chat_id,"results" => "??????","reply_markup" => $keyboardl); 

$data_string = json_encode($data);                     
$ch = curl_init('https://api.telegram.org/'.$token.'/answerinlinequery'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json',                     
    'Content-Length: ' . strlen($data_string))                  
);                             
$result = curl_exec($ch); 
echo $result; 

} 

는 내가 텍스트를 보내기 위해 사용할 필요가있는 InlineQueryResult 잘 모릅니다 : 이것은 내가 currentry 노력하고 있습니다 것입니다.

+0

무엇이 문제인가? –

+0

@Marcos Pérez Gude : answerinlinequery로 답을 보내는 방법 –

+0

코드에 어떤 문제가 있습니까? –

답변

6

인라인 쿼리로 텍스트를 보내려면 InlineQueryResultArticle(doc)을 사용해야하고 유형을 article으로 설정해야합니다.
chat_id을 설정할 필요가 없습니다. 데이터가 현재 활성 채팅에서 자동으로 전송되기 때문입니다. 이 메시지는 inline_query_id을 통해 확인되며 InlineQuery에 수신되는 id에 해당합니다.

$results = array(); 

$entry = array(
    "type" => "article", 
    "id" => "1", 
    "title" => "Title", 
    "description" => "Description", 
    "input_message_content" => array("message_text" => "Text to be sent") 
); 

array_push($results, $entry); 

$post = array(
    "inline_query_id" => $queryId, 
    "results" => json_encode($results) 
); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"https://api.telegram.org/bot" . $token . "/answerInlineQuery"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
$content = curl_exec ($ch); 
curl_close ($ch); 
+0

질문 : 'inline_query_id'값은 무엇이되어야합니까? [Tg Bot Doc] (https://core.telegram.org/bots/api#answerinlinequery)에서 더 이상 설명을 찾을 수 없습니다. –

+1

다른 InlineQuery 정보와 함께받은 'id'입니다. [(InlineQuery)] (https://core.telegram.org/bots/api#inlinequery). 너는 그것을 돌려 주면된다. – Maak

+0

감사합니다. +1. 실제로이 유형의 인라인 메시징에 대한 견해가 없습니다. 인라인 키보드가 달린 봇을 가지고 있고 내 키 중 하나에 코드를 추가하고 전보에서''ok '= "true"'응답을 얻지 만 내 전보 API에서 아무런 변화가 일어나지 않습니까? TG API에서 무엇을 기대해야합니까? –