如何使用ngrok生成固定URL

Sax*_*xid 58 ngrok

我正在使用facebook messenger.Facebook应用程序只接受webhook的一个URL,但ngrock每次都会生成新的URL.现在我无法测试我的应用程序因为webhook网址已更改.

Eug*_*lev 128

也许,这是不是你最好的选择,但我开始使用localtunnel代替ngrok.

安装和运行流程非常简单:

npm install -g localtunnel
lt --port <your localhost port> --subdomain youruniquesubdomain
Run Code Online (Sandbox Code Playgroud)

然后我可以去我的http://youruniquesubdomain.localtunnel.me 就是这样!


难以置信的更新

我刚刚找到了Serveo!它真是令人难以置信!没有安装,没有注册!

你需要做的就是运行:

ssh -R <unique subdomain>:80:<your local host>:<your local port> serveo.net
Run Code Online (Sandbox Code Playgroud)

喜欢

ssh -R youruniquesubdomain:80:localhost:8000 serveo.net
Run Code Online (Sandbox Code Playgroud)

  • 7月22日,Serveo再次下滑。 (9认同)
  • 断开连接后自动重启serveo,直到ssh -R aw2xcd:80:localhost:5000 serveo.net; 回声"重启......"; done` (8认同)
  • @DazBaldwin我刚刚更新了我的答案。Serveo看起来非常不可思议! (3认同)

小智 14

没有更多来自ngrok的免费子域支持.....请注意如下错误

隧道会话失败:只有付费计划可以绑定自定义子域.无法为帐户'arvccccc'绑定自定义子域'arvindpattartestfb.ngrok.io'.此帐户属于"免费"计划.

升级到付费计划:https://dashboard.ngrok.com/billing/plan

ERR_NGROK_313

  • 这是什么时候改变的,公告在哪里? (3认同)

pbo*_*gut 9

您需要设置身份验证令牌,您可以在此处找到https://dashboard.ngrok.com/auth。(W?o?r?k?s??w?i?t?h??f?r?e?e?v?e?r?s?i?o?n?,??n?o ? ?n?e?e?d? ?t?o? ?p?a?y? 显然它现在是付费功能,请参阅ngrok 定价)。

然后你可以像这样使用它:

ngrok http 80 -subdomain yoursubdomain
Run Code Online (Sandbox Code Playgroud)

  • 不起作用。还是一样的错误。隧道会话失败:只有付费计划可以绑定自定义子域。无法为帐户“Ck Maurya”绑定自定义子域“mysubdomain”。此帐户属于“免费”计划。 (6认同)

Mar*_*ven 5

看来ngrok已完全从免费层中删除了子域:https ://ngrok.com/product#pricing


Iva*_*nos 5

localtunnel.me 或 Serveo 现在都不适合我,所以我创建了一个临时解决方案,适用于一些用例,包括我的(react-native 本地开发):使用ngroknpm 包可以将生成的 ngrok url 保存到 json 文件中,并且可以为任何其他应用程序读取该文件。

首先确保npm install ngrok使用以下节点脚本安装 ngrok :

const ngrok = require('ngrok');
const fs = require('fs').promises;

(async function() {
  const url = await ngrok.connect(3000);
  const api = ngrok.getApi();
  let data = await api.get('api/tunnels');
  data = JSON.parse(data);
  let dict = {'domain': data.tunnels[0].public_url}
  await fs.writeFile("config.json", JSON.stringify(dict));
  console.log("saved " + data.tunnels[0].public_url);
})();

Run Code Online (Sandbox Code Playgroud)

然后从您的应用程序中,您可以使用类似于或等于的代码读取它:

const backend = require('./config.json').domain;
Run Code Online (Sandbox Code Playgroud)