电报机器人回答内联查询

时间:2021-06-05 12:10:19

标签: php laravel bots telegram-bot

我正在 Laravel 中开发电报机器人,但在开发内联查询时遇到了一些问题。有我的代码:


    public function __construct()
    {
        $this->telegram = new Telegram();
    }
    public function index(Request $request){
  
        $this->requestData = $this->telegram->requestData($request->all());
        $this->inline_query=$this->requestData['inline_query']['query'] ?? null;
        $this->inline_query_id=$this->requestData['inline_query']['id'] ?? null;
        $this->inline_query_user=$this->requestData['inline_query']['from']['first_name'] ?? null;
  
       $id1= $this->telegram->InlineQueryResultArticle($this->inline_query_id, "Title", "Texte Message1");
    }
       $this->telegram->answerInlineQuery($this->inline_query_id, $id1);

如你所见,我有电报课,还有它的代码:

public function sendRequest()
    {
        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => $this->url.$this->token."/".$this->method,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_POSTFIELDS => http_build_query($this->data),
            CURLOPT_HTTPHEADER => array(
                "Content-Type: application/x-www-form-urlencoded"
            ),
        ));
    public function InlineQueryResultArticle($id, $title, $message_text){
        return [
            "type" => 'article',
            "id" => $id,
            "title" => $title,
            
            "input_message_content" => ["message_text" => $message_text,"description"=>"iuias"],
        ];
    
    }
    public function answerInlineQuery($inline_query_id, $results)
    {
        $this->data = [
            'inline_query_id' => $inline_query_id,
            'results' => $results,
        ];
        $this->method = 'answerInlineQuery';
        return $this->sendRequest();
    }
}

我遵循了电报 api 文档,但它没有响应我的电报中的内联查询。我用 var_dump 检查了以下代码响应代码:

$this->telegram->answerInlineQuery($this->inline_query_id, $id1);

它显示了这个响应:

array(2) {
  ["ok"]=>
  bool(true)
  ["result"]=>
  string(25) "{"ok":true,"result":true}"
}

像 sendMessage 这样的任何其他请求都可以正常工作,但我无法使用内联查询。可能有什么错误?

0 个答案:

没有答案