|
6 years ago | |
---|---|---|
LICENSE | 7 years ago | |
LICENSES.txt | 6 years ago | |
README.md | 7 years ago | |
cl-telegram-bot.asd | 6 years ago | |
cl-telegram-bot.lisp | 6 years ago | |
example.lisp | 7 years ago | |
package.lisp | 6 years ago |
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, telegram-bot.
function (make-bot token)
Returns a bot instance for a given token. To get a new token, see here.
macro (with-package package-name &rest body)
Interns JSON symbols into package-name (usually, the package the bot is being used) while executing body
.
function (access object &rest slot-list)
Convenience function to access nested fields in a JSON object. Returns NIL if at least one slot is unbound. 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.
macro (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).
macro (find-json-symbol :symbol-name)
Returns JSON-interned symbol.
function (get-slot obj slot)
Returns slot from obj, NIL if unbound. Use with JSON CLOS object.
error request-error
Used (currently) by get-updates on HTTP error.
unexported function (cl-telegram-bot::get-class-slots object)
(SBCL only)
Use this function to inspect JSON objects. For debugging only.
unexported function (cl-telegram-bot::make-request b method-name options-alist)
Make direct API request using Drakma. Use for debugging only.
unexported function (cl-telegram-bot::trace-http)
Turns on Drakma's HTTP header output. Use for debugging only.
function (get-updates bot &key limit timeout)
Returns a vector of updates as CLOS objects.
NOTE: The offset parameter is omitted as it is internally managed by the cl-telegram-bot:bot class.
NOTE: the keyword argument :reply-to-message-id from the official API was renamed to :reply in every function.
function (send-message bot chat-id text &key parse-mode disable-web-page-preview disable-notification reply)
function (forward-message bot chat-id from-chat-id message-id &key disable-notification)
function (send-photo bot chat-id photo &key caption disable-notification reply reply-markup)
function (send-audio bot chat-id audio &key duration performer title disable-notification reply reply-markup)
function (send-document bot chat-id document &key caption disable-notification reply reply-markup)
function (send-sticker bot chat-id sticker &key disable-notification reply reply-markup)
function (send-voice bot chat-id voice &key duration disable-notification reply reply-markup)
function (send-location bot chat-id latitude longitude &key disable-notification reply reply-markup)
function (get-user-profile-photos bot user-id &key offset limit)
function (get-file bot file-id)
function (leave-chat bot chat-id)
function (get-chat bot chat-id)
function (get-chat-members-count bot chat-id)
function (answer-callback-query bot callback-query-id &key text show-alert)
function (edit-message-caption bot chat-id message-id inline-message-id &key caption reply-markup)
function (edit-message-reply-markup bot chat-id message-id inline-message-id &key reply-markup)