无法使用 ngrok 在本地测试我的 Telegram Bot
Posted
技术标签:
【中文标题】无法使用 ngrok 在本地测试我的 Telegram Bot【英文标题】:Couldn't test locally my Telegram Bot with ngrok 【发布时间】:2019-01-20 15:30:29 【问题描述】:我正在尝试使用 ngrok 和 nuget 包 Telegram.Bot.Core 测试我的 Telegram Bot... 这些是我目前正在执行的步骤: 1) 我用 Lampp 启动一个 Web 服务器(因为我使用的是 Arch Linux) 2) 然后我使用以下命令启动 ngrok:ngrok http 8443 3)最后一步......我运行我的代码示例:
myBot.SetWebhookAsync("https://address.ngrok.io").Wait();
myBot.StartReceiving(Array.Empty<UpdateType>());
Console.WriteLine("Starting Receiving");
Console.ReadLine();
myBot.StopReceiving();
问题是 localhost:8443 无法访问,我不知道为什么。 我尝试在 launch.json 的配置属性中添加 "debugServer": 8443 但 localhost:8443 仍然无法访问.. 我做错了什么?
【问题讨论】:
【参考方案1】:要使用 ngrok 共享您的本地主机和测试 Telegram Bot,您应该执行以下步骤:
- 第 1 步
编辑位于 ../.vs/config/applicationhost.config
中的 Visual Studio 应用程序配置文件(从您的项目根文件夹中跟踪它)。
找到绑定标签并添加第二个绑定标签(“localhost”刚刚删除):
<configuration>
...
<sites>
...
<site ...>
<bindings>
<binding protocol="http" bindingInformation="*:5000:localhost" />
<binding protocol="http" bindingInformation="*:5000:" />
</bindings>
</site>
...
</sites>
...
</configuration>
注意不要对使用 8080 端口的标签做这一步绑定。
- 第 2 步
以管理员身份运行 Visual Studio 并打开您的项目。
- 第 3 步
关闭防火墙。
- 第 4 步
运行ngrok并输入“ngrok http 8443
”命令然后回车。
- 第 5 步
打开您喜欢的浏览器之一,然后转到api.telegram.org/bot<Token>/setwebhook?url=<Domain>
地址。
在此 URL 中是您的机器人令牌,并且是您使用 https 的 ngrok 转发地址。
(例如:https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/setwebhook?url=https://01e08160.ngrok.io/api/Update
)
【讨论】:
以上是关于无法使用 ngrok 在本地测试我的 Telegram Bot的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 ngrok 或 localtunnel 来测试本地 gRPC 服务器?