我尝试使用基本身份验证对API进行身份验证。看起来下面的代码应该可以工作,但是当我用Cx Ce运行它之后在 scratch 缓冲区中运行它时它会破坏(说:调试器已输入 - Lisp错误:(错误 - type-argument characterp))。
我的代码如下。如果有人知道我需要更改以使其工作,请告诉我!我在网上找不到完整的Emacs Lisp基本身份验证示例,所以这将是一个巨大的帮助。
(setq ztoken "areallyfaketokenrandomtokenwithfakechars")
(setq zsite "https://fake.zendesk.com/api/v2/users/1100000011/related.json")
(let ((url-request-method "GET")
(url-request-extra-headers '(("Content Type" . "application/json")
("Authorization" . ,(concat "Basic "
(base64-encode-string
(concat "joe@fake.com/token" ":" ztoken)))))))
(condition-case nil
(url-retrieve-synchronously
(format zsite))))
答案 0 :(得分:1)
正如法律清单所述,您的代码使用单引号而不是反向代码。下面是一种替代方法,它不使用反向标记/逗号。有关反引用的更多信息:https://www.gnu.org/software/emacs/manual/html_node/elisp/Backquote.html#Backquote
(let* ((url-request-method "GET")
(base64 (concat "Basic "
(base64-encode-string
(concat "joe@fake.com/token" ":" ztoken))))
(url-request-extra-headers (list (cons "Content Type" "application/json")
(cons "Authorization" base64))))
(condition-case nil
(url-retrieve-synchronously
(format zsite))))