Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows7和PHP上如何在带有自证书的电报中使用setWebhook?_Php_Ssl_Telegram_Apache2.4_Telegram Bot - Fatal编程技术网

在Windows7和PHP上如何在带有自证书的电报中使用setWebhook?

在Windows7和PHP上如何在带有自证书的电报中使用setWebhook?,php,ssl,telegram,apache2.4,telegram-bot,Php,Ssl,Telegram,Apache2.4,Telegram Bot,我在电报方面是个新手,我正试着用它迈出我的第一步 我在这里找到了一个很好的教程:我用PHP和SSL配置了Apache2.4,所有这些都很好,教程中的示例也很好 问题在于使用setWebhook方法。。。。当我尝试在浏览器中输入 https://api.telegram.org/<my_bot_code>/setWebHook?url=https://localhost/Telegram/MyYouTubeTutorialBot/YouTubeTutorialBot.php 请注意,

我在电报方面是个新手,我正试着用它迈出我的第一步

我在这里找到了一个很好的教程:我用PHP和SSL配置了Apache2.4,所有这些都很好,教程中的示例也很好

问题在于使用setWebhook方法。。。。当我尝试在浏览器中输入

https://api.telegram.org/<my_bot_code>/setWebHook?url=https://localhost/Telegram/MyYouTubeTutorialBot/YouTubeTutorialBot.php
请注意,我使用的是自生成的证书

我在api电报文档(参考)中发现

“…要使用自签名证书,您需要使用setWebhook中的certificate参数上载公钥证书。请作为InputFile上载,发送字符串无效。”

我不明白如何上传我的公钥证书文件。。。。有什么例子吗

问题可能是因为我正在使用localhost和本地Apache的默认IP地址127.0.0.1?我是否应该使用每次连接到web时都会更改的当前IP地址(我正在使用internet密钥将我连接到web…)来更改我的IP地址


提前非常感谢您

以下库允许您轻松完成此操作(并快速设置机器人):

它本质上调用电报的
setWebhook
函数/页面,通过
POST
请求将自签名证书作为文件传递:

$data = array("url"=>$YOURCALLBACKURL,"certificate"=>"@$CERTIFICATEFILE");
$telegramurl = "https://api.telegram.org/bot$TOKEN/setWebhook";
// now you have to make a request on $telegramurl passing $data via POST (e.g. using curl library)
如果要使用
php电报bot库
,可以通过install.php文件或使用以下代码轻松设置它(它在Linux上工作,在Windows系统上也应该工作):


localhost
或您的本地IP(
127.0.0.1
)或本地网络IP(
192.168.1.2
)无法通过Internet访问您的本地计算机
每台机器都有自己的
localhost
,因此电报服务器的localhost与您的
您应该使用
网站托管
VPS
运行脚本并使用其地址

我知道一个免费的开发者VPS:

使用以下简单的html代码


选择要上载的证书:
网址:

无法使用localhost,因为127.0.0.1只能从内部计算机访问。电报服务器无法访问它。这是一个简单的post表单,因此您可以将证书上载到电报机器人,只需将其替换为您的机器人即可。感谢什么?(文件,动作)
$data = array("url"=>$YOURCALLBACKURL,"certificate"=>"@$CERTIFICATEFILE");
$telegramurl = "https://api.telegram.org/bot$TOKEN/setWebhook";
// now you have to make a request on $telegramurl passing $data via POST (e.g. using curl library)
$bot = new telegram_bot($TOKEN);
$bot->set_webhook($WEBHOOKURL, $SSLCERTIFICATEFILE);