Skip to content

fukamachi/cl-line-bot-sdk

Repository files navigation

cl-line-bot-sdk

Build Status Coverage Status

Common Lisp SDK for the LINE Messaging API.

Usage

(ql:quickload :linebot/app)

(defclass echo-app (linebot/app:app) ())

(defmethod linebot:handle-message-event ((handler echo-app)
                                         (event linebot:message-event)
                                         (message linebot:text-message))
  (linebot:reply-message
   (make-instance 'linebot:text-send-message
                  :text (linebot:message-text message))))

(make-instance 'echo-app
               :channel-secret "<channel secret>"
               :channel-access-token "<channel access token>"
               :callback "/callback")
$ clackup echo.lisp

Testing

(use-package :prove)
(use-package :linebot/tests)
(import '(assoc-utils:aget lack.request:request-body-parameters))

(plan 1)

(subtest-lineapp "echo"
    (make-instance 'echo-app
                   :callback "/callback")
  (emit-webhook
    (linebot:make-event
      `(("type" . "message")
        ("timestamp" . ,(current-timestamp))
        ("source" . (("type" . "user")
                     ("userId" . ,(dummy-user-id))))
        ("replyToken" . ,(dummy-reply-token))
        ("message" . (("type" . "text")
                      ("text" . "こんにちは"))))))

  (let ((requests (lineapp-requests)))
    (is (length requests) 1
        "1 response")
    (let ((params (request-body-parameters (aref requests 0))))
      (is (length (aget params "messages")) 1
          "Has 1 message")
      (is (aget (first (aget params "messages")) "type") "text"
          "The message is text one")
      (is (aget (first (aget params "messages")) "text") "こんにちは"
          "The message says こんにちは"))))

(finalize)

Installation

$ ros install fukamachi/cl-line-bot-sdk

Author

Copyright

Copyright (c) 2016 Eitaro Fukamachi (e.arrows@gmail.com)

License

Licensed under the BSD 2-Clause License.

About

SDK for the LINE Messaging API for Common Lisp

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages