Ubuntu TradingView WebHook API没有';不行,什么会阻止POST请求?

Ubuntu TradingView WebHook API没有';不行,什么会阻止POST请求?,ubuntu,nginx,webhooks,pine-script,tradingview-api,Ubuntu,Nginx,Webhooks,Pine Script,Tradingview Api,自从TradingView开放他们的webhook支持以来,我一直在绞尽脑汁想弄清楚为什么我的服务器没有收到任何信号。到目前为止,我已经完成了以下工作: 确保端口已打开,确保TradingView实际发送POST请求 尝试在barebones nodejs服务器、flask服务器上发布,最后在flask服务器上发布nginx反向代理 在webhook.site上交叉引用了传入的文章标题和正文,在Postman以及其他工具上复制了它,我的服务器收到了它们 你可以在这里看到现场发出的信号: 但是

自从TradingView开放他们的webhook支持以来,我一直在绞尽脑汁想弄清楚为什么我的服务器没有收到任何信号。到目前为止,我已经完成了以下工作:

  • 确保端口已打开,确保TradingView实际发送POST请求
  • 尝试在barebones nodejs服务器、flask服务器上发布,最后在flask服务器上发布nginx反向代理
  • 在webhook.site上交叉引用了传入的文章标题和正文,在Postman以及其他工具上复制了它,我的服务器收到了它们
你可以在这里看到现场发出的信号:

但是在交付过程中的某个地方显然出现了一些问题,因为nginx日志和unix日志中甚至没有任何请求的痕迹。这绝对不是防火墙或CORS问题,否则我在使用工具进行复制时也会遇到同样的问题,对吗?外面有人能帮我破案吗

这是我的nginx配置:

    server {
    listen 80;
    server_name lunarlabs.org;

    location / {
      add_header 'Access-Control-Allow-Origin' '*';
      add_header 'Access-Control-Allow-Credentials' 'true';
      add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
      add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
      return 301 https://$host$request_uri;
    }

}

server {
      listen 443 ssl;
      server_name lunarlabs.org;
      ssl_certificate /etc/letsencrypt/live/***.org/cert.pem;
      ssl_certificate_key /etc/letsencrypt/live/***.org/privkey.pem;
      # ...
      access_log  /var/log/nginx.log;
      error_log /var/log/nginxerror.log;

      root /var/www/html/public;
      index index.php;

    location / {
      add_header 'Access-Control-Allow-Origin' '*';
      add_header 'Access-Control-Allow-Credentials' 'true';
      add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
      add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,X-Forwarded-For,content-length';
      include proxy_params;
      proxy_pass http://unix:/home/tvhook/***;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }
}
我设置的演示webhook服务器可以在以下位置访问——任何JSON格式的POST数据都应该返回200。但是TradingView的信号似乎真的不喜欢我的服务器,或者我的服务器真的不喜欢他们的请求。

Post:x509:未知授权机构签署的证书

curl—数据“ds” curl:(60)对等证书无法使用已知CA证书进行身份验证 详情如下:

curl默认情况下使用“bundle”执行SSL证书验证 颁发证书机构(CA)公钥(CA证书)。如果默认 捆绑文件不足,您可以指定一个备用文件 使用--cacert选项。 如果此HTTPS服务器使用由中表示的CA签名的证书 对于捆绑包,证书验证可能由于错误而失败 证书有问题(可能已过期,或者名称可能已过期) 与URL中的域名不匹配)。 如果要关闭curl对证书的验证,请使用
-k(或--unsecure)选项。

我遇到了相同的问题,但我的设置可能有点不同

Apache+烧瓶

tradingview\u alert=request.get\u json(force=True)


我也有同样的问题

Tradingview支持报告了错误:“x509:未知授权机构签署的证书”。 然而,这个要求对我来说很有效


我使用的是Comodo SSL证书,结果证明我没有在nginx中设置“链证书”。设置它并重新启动nginx很有帮助。电视上的网络钩子现在工作得很好。

我试过Windows和Linux(ubuntu)服务器(使用Apache),它们似乎都收到了ping,但消息中的数据是空的。直到今天我才发现这个问题(我怀疑电视不能成功地使用curl

所以,我有两个选择:

1) 移动到“邮件到短信”挂钩,并使用简单的服务

2) 使用Webhook的直接链接,如:

警报1:
example.com/?action=BUY

警报2:
example.com/?action=SELL


因此,您不必关心空消息,而是提取
$\u GET
查询变量。

这是您和OP的配置之间的答案还是差异?这是对POST请求中警报描述tradingview传递消失的答案,以及我的解决方法。大多数TL可能与tradingview发送JSON有关,但不设置头来实现这一点。您是如何解决的?