我有这个用Lua编写的Telegram机器人,我正在做一个语言网络的爱好。我一直在通过getUpdates API调用阅读新消息。现在我想重写它以使用webhooks,但我没有任何经验。我用谷歌搜索但没有找到任何确定的东西。我觉得WSAPI是可以使用的库,但我不确定。而且,我不确定我是否需要任何特殊的库来读取POST请求(这是Telegram bot API使用的全部内容)。我尝试使用套接字:
socket = require 'socket'
server = assert(socket.bind("*", 9000))
function read(client, pattern, prefix)
local data, emsg, partial = client:receive(pattern, prefix)
if data then
return data
end
if partial and #partial > 0 then
return partial
end
return nil, emsg
end
while true do
local client = server:accept()
client:settimeout(3)
local msg, err = read(client, '*a')
if not err then
print(msg)
client:close()
end
end
这里的print(msg)
给了我完整的POST请求,包括我可能能解析的标题(正文应该始终是JSON)。我对HTTP请求并不是那么熟悉,而且我不确定我是否可以丢弃第一个{
之前的所有内容。
我的设置是Lua 5.2,Ubuntu x64 16.04和Nginx。我需要做的是接收和读取POST请求,仅此而已。
TL; DR:可以解析我从上面的代码收到的POST请求,还是我错过了一些东西,比如让我的生活更轻松的图书馆?
谢谢!