使用 emacs-web-server 解析 webhook
·
问题:使用 emacs-web-server 解析 webhook
我正在使用emacs-web-server和ngrok从 GitHub 接收 Webhooks。关于设置,我通过 Github 网站上的 Redeliver 按钮从 Github 手动触发请求:

我正在使用以下代码来处理来自 GitHub 的请求:
(ws-start
'(((:POST . ".*") .
(lambda (request)
(with-slots (process headers pending) request
(print "# pending start #")
(print pending)))))
9005)
emacs-web-server POST的示例可以在这里找到:http://eschulte.github.io/emacs-web-server/POST-Echo.html#POST-Echo
它进来得很好,pending的printing 在我的 Messages 缓冲区中显示以下内容:

但是我在将有效负载隔离在变量中时遇到了麻烦(即,双线换行后的所有内容:{\"ref\"..等)。我尝试了几个正则表达式;当我在暂存缓冲区中使用它们并粘贴挂起变量的副本时,这些似乎都有效,但在实际有效负载场景中不起作用。据推测,^Ms 与此有关,因为当内容粘贴到另一个缓冲区时它们不存在。如果有人能指出我正确的方向,那将不胜感激。
谢谢!
解答
正如@Rick77 最近询问的那样,盘旋回来。
通过手动读取响应,我能够使请求处理/解析工作。
但是最近我遇到了类似的情况(传出请求除外),并且发现使用'request 和'json 库是一种更简单的方法:
(require 'json)
(require 'request)
(defun get-response-data (url)
(let* ((res (request url :sync t))
(data (request-response-data res)))
(json-read-from-string data)))
https://github.com/ryancrum/json.el
https://tkf.github.io/emacs-request/
更多推荐


所有评论(0)