我有一个使用curl命令运行的端点。
curl -X POST https://example.com/control -d "channel=X&turn=XXX&id=XXXXXX&auth_key=XXXXX"
我想在Telegram Web钩子和那篇文章之间绑定,所以每次我的Telegram bot都会收到一条消息,它会把它发到那个URL
我试着注册一个电报网钩:
https://api.telegram.org/bot<telegram_token>/setWebhook?url=https://example.com/control?channel=X&turn=XXX&id=XXXXXX&auth_key=XXXXX
但后来我看到那封信只寄给
https://example.com/control?channel=X
是否有办法使用电报网络钩子附加更多的数据?
发布于 2022-11-28 08:56:02
问题似乎是,curl将其他查询参数(turn、id、auth_key)理解为https://api.telegram.org的参数,而不是传递给url参数的url的参数。您可以使用https://httpbin.org来检查这一点:
curl -X POST https://httpbin.org/anything -d "url=https://example.com/control?channel=X&turn=XXX&id=XXXXXX&auth_key=XXXXX"返回的对象包含:
"form": {
"auth_key": "XXXXX",
"id": "XXXXXX",
"turn": "XXX",
"url": "https://example.com/control?channel=X"
},解决方案是使用--data-urlencode标志而不是-d (即--data):
curl -X POST "https://httpbin.org/anything" --data-urlencode "url=https://example.com/control?channel=X&turn=XXX&id=XXXXXX&auth_key=XXXXX"响应:
"form": {
"url": "https://example.com/control?channel=X&turn=XXX&id=XXXXXX&auth_key=XXXXX"
},电报请求:
curl -X POST https://api.telegram.org/bot<telegram_token>/setWebhook --data-urlencode "url=https://example.com/control?channel=X&turn=XXX&id=XXXXXX&auth_key=XXXXX"https://stackoverflow.com/questions/74593262
复制相似问题