Common lisp 无法在common lisp中发布松弛webhook url

Common lisp 无法在common lisp中发布松弛webhook url,common-lisp,Common Lisp,我想发布slackwebhook,但我得到了一个错误 这项工作: 脱封柱松度 drakma:http请求https://hooks.slack.com/services/xxx :方法:邮寄 :内容类型应用程序/json :参数的有效载荷。{\username\:\bot\,\icon\u emoji\:\:孵化小鸡:\,\text\:\name:~A\n电子邮件:~A\n内容:~A\,\as\u用户\:true} 但这并不是: defun发布松弛名称电子邮件文本 setq*payload*格式

我想发布slackwebhook,但我得到了一个错误

这项工作:

脱封柱松度 drakma:http请求https://hooks.slack.com/services/xxx :方法:邮寄 :内容类型应用程序/json :参数的有效载荷。{\username\:\bot\,\icon\u emoji\:\:孵化小鸡:\,\text\:\name:~A\n电子邮件:~A\n内容:~A\,\as\u用户\:true} 但这并不是:

defun发布松弛名称电子邮件文本 setq*payload*格式nil{\username\:\bot\,\icon\u emoji\:\:孵化小鸡:\,\text\:\name:~A\n电子邮件:~A\n文本:~A\,\as\u用户\:true}名称电子邮件文本 drakma:http请求https://hooks.slack.com/services/xxx :方法:邮寄 :内容类型应用程序/json :参数的有效载荷*有效载荷* 这是我的错误:

The value
  CAVEMAN-STUDY.CONTROLLER::*PAYLOAD*
is not of type
  LIST
when binding SB-C::FAST
   [Condition of type TYPE-ERROR]

Restarts:
 0: [RETRY] Retry SLIME REPL evaluation request.
 1: [*ABORT] Return to SLIME's top level.
 2: [ABORT] abort thread (#<THREAD "new-repl-thread" RUNNING {1008826443}>)

Backtrace:
  0: (FIND-IF-NOT #<FUNCTION (LAMBDA (DRAKMA::THING) :IN DRAKMA:HTTP-REQUEST) {22D088AB}> ("payload" . CAVEMAN-STUDY.CONTROLLER::*PAYLOAD*) :KEY #<FUNCTION CDR>)
  1: (DRAKMA:HTTP-REQUEST #<PURI:URI https://hooks.slack.com/services/xxxx> :METHOD :POST :CONTENT-TYPE "application/json" :PARAMETERS ("payload" . CAVEMAN-STUDY.CON..
  2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (CAVEMAN-STUDY.CONTROLLER:POST-SLACK "aaa" "bbb" "ccc") #<NULL-LEXENV>)
  3: (EVAL (CAVEMAN-STUDY.CONTROLLER:POST-SLACK "aaa" "bbb" "ccase"))
 --more--
请告诉我怎么修。谢谢

您正在传递有效负载*负载*到drakma:http请求, 此处不计算*有效载荷*,即,它作为符号传递, 不是它的价值

你可能想要的是

(defun post-slack (name email text)
  (let ((payload (format nil "..." ...)))
    (drakma:http-request "https://hooks.slack.com/services/xxx"
                         :method :post
                         :content-type "application/json"
                         :parameters `(("payload" . ,payload)))))
请注意,我替换为

另外,您还可以使用list cons payload*payload*代替'payload',如果您想要避免,则为有效负载。

您正在传递有效负载*负载*到drakma:http请求, 此处不计算*有效载荷*,即,它作为符号传递, 不是它的价值

你可能想要的是

(defun post-slack (name email text)
  (let ((payload (format nil "..." ...)))
    (drakma:http-request "https://hooks.slack.com/services/xxx"
                         :method :post
                         :content-type "application/json"
                         :parameters `(("payload" . ,payload)))))
请注意,我替换为


另外,您还可以使用list cons payload*payload*代替'payload',如果您想避免,请使用有效负载。

因为您谈论的是松弛:

似乎是最新的和有记录的 快速口齿不清 最近的,没有医生 2017 还有更多的空闲机器人


我发现了这些,我不知道它这么方便。

既然你说的是松弛:

似乎是最新的和有记录的 快速口齿不清 最近的,没有医生 2017 还有更多的空闲机器人


我发现了这些,我不知道它这么方便。

更简单地列出有效载荷*有效载荷*?@Ehvince:不,这将是一个类型错误。您需要列出cons有效负载*有效负载*。更简单的是列出有效负载*有效载荷*?@Ehvince:不,这将是一个类型错误。您需要列出cons有效负载*有效负载*。