common-lispでslack webhookを叩く

こういう大したことのない記事でもかけるのが自分でブログサイトをホスティングするメリットなのかもしれない。

common-lispできるようになりたい人生だった。道のりは長すぎる。


以下がそのコード。

;; for slack                                                                  
(defun post-slack (name)
    (let ((payload (format nil "{\"username\":\"bot\",\"icon_emoji\":\":hatching_chick:\",\"text\":\"<@U7RM4J8MR> 名前: ~A\",\"as_user\":true}" name))
        (webhook_url (uiop:getenv "SLACK_WEBHOOK_URL")))
        (setq drakma:*drakma-default-external-format* :utf-8)
        (drakma:http-request webhook_url
            :method :post
            :content-type "application/json"
            :parameters `(("payload" . ,payload)))))

drakmaの文字コードの設定をちゃんとする必要がある。

(setq drakma:*drakma-default-external-format* :utf-8)

参考: Common LispでDrakmaを使うときにUTF-8を使う際の設定

common-lispクソザコで数時間とかしてできなくて絶望してたけど、StackoverFlowで質問して寝たら解決した。

sds氏、ガバガバ英語の修正もしてくれるわ、丁寧に回答してくれるわ、別の質問も答えてくれるわで涙がでそうなくらい嬉しかった。

Thanks to your code, it work!!!!

Cannot post slack webhook url in common lisp