如何才能发现电报将消息发送到我设置为webhook的网址

时间:2016-07-20 12:23:54

标签: webhooks telegram telegram-bot pem jks

我做了以下步骤来为我的电报机器人设置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)可以接收电报用户发送给我的电报机器人的消息? 为什么我无法收到电报用户发送给我的机器人的消息?我该怎么办? 感谢。

1 个答案:

答案 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保存到数据库或重新发送到您的(管理员)客户端!!(很多消息)