我每次都会在watch()
上收到电子邮件时,使用Gmail API + Google Pub / Sub API将Push notifications投放到在EC2实例上运行的节点服务器上收件箱。我将我的服务器的域添加到console.developers.google.com的推送部分,然后对于Pub / Sub API,我创建订阅并添加推送端点URL。端点看起来像这样:https://example.com/receive
。
我想做的是在本地进行测试。
如何让Google向我的localhost服务器发送推送通知?当我测试时,我希望将新电子邮件的通知发送到http://localhost:8080/receive
。我在考虑使用ngrok来公开localhost - 问题是,每次ngrok URL改变时我都必须手动上传Google的证明(我拥有域名),这是一个非常头痛的问题。
在我的localhost服务器上是否存在接收新电子邮件通知的更好方式?
答案 0 :(得分:3)
一种选择是每月向ngrok支付5美元并获得自定义子域名。另一种选择是自己模拟这些通知的HTTP POST请求。卷曲可以做到如下:
$ curl -i --data @push_notification.json http://localhost:8080/receive
你需要一个本地文件' push_notification.json'与gmail推送通知具有相同的内容。
答案 1 :(得分:0)
Google的推送通知是对端点的HTTP S POST调用。 要使HTTPS正常工作,请使用与公共域名匹配的有效SSL证书。所以,您需要以下内容:
1. A public domain name.
2. an SSL certificate that matches that particular domain name.
3. your domain should be publically reachable on port 443.
如果您在公司工作,请要求IT部门为您的主机分配一个域名,并通过互联网提供相应的证书。
如果是家庭连接,则不能使用free / noip / etc域,例如以* .ddns.net结尾的域,因为您无法获得.ddns.net的SSL证书。 但是你可以获得* .biz或* .info域名,每年不到10美元。 此外,如果您使用家庭连接并且没有固定IP,请选择允许自动更新IP地址的域名注册商。
对于SSL证书,您可以从comodo等公司获得3个月的免费试用,或者1 - 3年的证书,如果您使用其中一个折扣经销商,这些也可以非常便宜。我建议跳过3个月的免费试用,因为三个月后你可能不得不再做一次,你的时间可能超过8美元。
由于这些是标准的HTTPS请求,端点应该可以在端口443上公开访问。例如,让端口443打开调制解调器/防火墙,但将其路由到更高的端口(> 1024),这样你就不会需要以root身份运行端点服务器(如果是在linux上)。
答案 2 :(得分:0)
您可以serveo通过您拥有的域将本地服务器公开到Internet(ssh)。如果您使用Linux(一种流行的发行版),则可以在不安装任何其他软件的情况下进行操作:
ssh-keygen
)ssh-keygen -l
)A
指向159.89.214.31
(在伺服页面上检查)TXT
的{{1}}记录authkeyfp=fingerprint_from_point_2