我做了以下步骤来为我的电报机器人设置Webhook:
我从我的https网址(https://mywebapp.com/index./index.jsp)获取.cer文件,然后按此顺序生成.jks文件(我转到cmd中的jre / bin文件夹):
keytool -importcert -file mywebapp.cer -keystore myKeystore.jks -alias mywebapp.com
然后我将其转换为.p12文件:
keytool -importkeystore -srckeystore myKeystore.jks -destkeystore myPkcs.p12 -srcstoretype jks -deststoretype pkcs12
然后我通过openSSL将.p12文件转换为.pem文件:
openssl pkcs12 -in myPkcs.p12 -out myPem.pem
然后我生成此表单来设置webhook:
<form id="telegramForm" action="https://api.telegram.org/botTOKEN/setWebhook" method="POST" enctype="multipart/form-data">
<input type="text" name="url" id="url" value="https://mywebapp.com/index.jsp">
<input type="file" name='certificate' id='certificate'>
<input type="submit" value="submit">
</form>
我从输入[type = file]浏览myPem.pem文件。我提交此表单,我收到了回复:
{“ok”:true,“result”:true,“description”:“Webhook已设置”}
但是当我(或用户电报)通过电报申请向我的机器人发送一些消息(如短信“hello”)时,https://mywebapp.com/index.jsp(设置为webhook的网址)没有得到任何请求。< / p>
我怎样才能发现电报将消息(用户发送到我的电报机器人)发送到我设置为webhook的网址?我怎样才能发现这个网址(https://mywebapp.com/index.jsp)可以接收电报用户发送给我的电报机器人的消息? 为什么我无法收到电报用户发送给我的机器人的消息?我该怎么办? 感谢。
答案 0 :(得分:0)
最好将您的网络挂钩设置为:https://mywebapp.com/index.php
index.php
是您的机器人处理器文件。
将此代码放在index.php
文件中进行测试:
<?php
define('BOT_TOKEN','1234:xyz'); //replace second parameter with your bot token
$command_prefix_url = 'https://api.telegram.org/bot' . BOT_TOKEN;
$update = json_decode(file_get_contents('php://input'));
$rep = json_decode(file_get_contents($command_prefix_url . '/SendMessage?chat_id=' .
$update->message->chat->id . '&text='.urlencode($update->message->text)));
?>
现在每次,如果有人发给你一些文字,它会从机器人那里收到那个文字。
如果您想知道,是否有任何人向您的机器人发送了一些东西,您可以将此$update
保存到数据库或重新发送到您的(管理员)客户端!!(很多消息)