No description
Find a file
unwind-protect 0366f58d1c readme
2016-08-14 04:39:23 +02:00
cl-telegram-bot.asd first commit 2016-08-14 04:35:03 +02:00
cl-telegram-bot.lisp first commit 2016-08-14 04:35:03 +02:00
example.lisp first commit 2016-08-14 04:35:03 +02:00
LICENSE first commit 2016-08-14 04:35:03 +02:00
package.lisp first commit 2016-08-14 04:35:03 +02:00
README.md readme 2016-08-14 04:39:23 +02:00

Telegram Bot API for Common Lisp

See the Telegram Bot API.

This library uses Drakma and CL-JSON with CLOS semantics.

This library has the following aliases: cl-telegram-bot, tl-bot, tg-bot.

  • function (make-bot token) Returns a bot instance for a given token. To get a new token, see here.

  • function (access object &rest slot-list) Convenience function to access nested fields in a JSON object. For example, to access update.message.from.id, you can use (access update 'message 'from 'id). This operation is linear in time, so I suggest keeping it at a minimum, reusing the fields multiple times, e.g. using a let*. You can use this function from any JSON field, so (access message 'from 'id) from a previously accessed message field should be used when many nested fields share a common parent.

  • function (decode json-object) Decode JSON object to CLOS object. Use to convert the return value of API calls when needed, e.g. (decode (send-message ...) returns an object ready to be used (by access, for example).

  • function (get-slot obj slot) Returns slot from obj, NIL is unbound. Use with JSON CLOS object.

  • error request-error Used (currently) by get-updates on HTTP error.

  • function (cl-telegram-bot::get-class-slots object) (SBCL only) Use this function to inspect JSON objects. For debugging only.

  • function (cl-telegram-bot::make-request b method-name options-alist) Make direct API request using Drakma. Use for debugging only.

  • function (get-updates bot &key limit timeout)

    NOTE: The offset parameter is omitted as it is internally managed by the tl-bot:bot class.

API methods

NOTE: the keyword argument :reply from the official API was renamed to :reply in every function.