我举了一个简单的例子来更好地理解我的问题。
我有这些代码,您可以输入名称和文本,然后使用Get获取值。
一旦收到这些值,程序就会发送一个由我创建的带有sendMessage
的电报机器人。
$chat_id =
到我创建的电报机器人的聊天ID。
<?php
if(isset($_GET['name']) && isset($_GET['message'])){
define ('url',"https://api.telegram.org/botTOKEN/");
$name = $_GET['name'];
$message = $_GET['message'];
$chat_id = 'TEST';
function invia($chat_id,$message = ''){
$url= url."sendMessage?chat_id=$chat_id&parse_mode=HTML&text=".$message;
file_get_contents($url);
}
$message = urlencode("Hello $name this is the message : $message");
invia($chat_id, $message);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>">
Name:<br>
<input type="text" name="name" placeholder="Your Name">
<br>
Message:<br>
<textarea name="message" placeholder="Your Message Here" rows="6" cols="33"></textarea>
<br><br>
<input type="submit" value="Submit">
</form>
让我们写例如名称:“ Lorenzo Poggi”和消息:“嗨,这是测试”。
发送后,我将直接在电报机器人的聊天室中接收到消息。
现在的问题是这个,但是如果在example.php
页中,由于setWebhook
我有关于电报机器人的所有更新,我想得到的文字是测试”(以前通过sendMessage
发送的消息文本中,该怎么做?
答案 0 :(得分:2)
电报响应的结果应该是这样的:
{
"update_id": 901816057,
"message": {
"message_id": 36089,
"from": {
"id": 223110107,
"first_name": "Ğąme",
"last_name": "Ǿver!",
"username": "GameO7er"
},
"chat": {
"id": 223110107,
"first_name": "Ğąme",
"last_name": "Ǿver!",
"username": "GameO7er",
"type": "private"
},
"date": 1490493909,
"text": "Hi, this is a test"
}
}
您可以记录响应并尝试通过此website对其进行解码 然后,如果您想获取/打印用户消息,则应使用以下方式:
function invia(){
$url= url."sendMessage?chat_id=$chat_id&parse_mode=HTML&text=".$message;
$TelegramResult = file_get_contents($url);
$UserText = $TelegramResult['message']['text']; // Hi, this is a test
}
您会看到$UserText
包含用户发送到机器人的文本。
如果您有任何疑问,请联系我。上面的资源中还显示了我的电报ID,请随时与我联系。