我正在 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 这样的任何其他请求都可以正常工作,但我无法使用内联查询。可能有什么错误?