Get new events from an events queue
GET https://omegaletter.chat/api/v1/events
This endpoint allows you to receive new events from an event queue that
can be created by
requesting the https://omegaletter.chat/api/v1/register
endpoint.
Usage examples
curl -G https://omegaletter.chat/api/v1/events \ -u BOT_EMAIL_ADDRESS:BOT_API_KEY -d "queue_id=1375801870:2942" \ -d "last_event_id=-1"
#!/usr/bin/env python import sys import zulip # Download ~/zuliprc-dev from your dev server client = zulip.Client(config_file="~/zuliprc-dev") # If you already have a queue registered and thus, have a queue_id # on hand, you may use client.get_events() and pass in the above # arguments, like so: print(client.get_events( queue_id="1515010080:4", last_event_id=-1 )) # Print each message the user receives # This is a blocking call that will run forever client.call_on_each_message(lambda msg: sys.stdout.write(str(msg) + "\n")) # Print every event relevant to the user # This is a blocking call that will run forever # This will never be reached unless you comment out the previous line client.call_on_each_event(lambda msg: sys.stdout.write(str(msg) + "\n"))
call_on_each_message
and call_on_each_event
will automatically register
a queue for you.
More examples and documentation can be found here.
const zulip = require('zulip-js'); // Download zuliprc-dev from your dev server const config = { zuliprc: 'zuliprc-dev', }; zulip(config).then((client) => { // Register queue to receive messages for user const queueParams = { event_types: ['message'] }; client.queues.register(queueParams).then((res) => { // Retrieve events from a queue // Blocking until there is an event (or the request times out) const eventParams = { queue_id: res.queue_id, last_event_id: -1, dont_block: false, }; client.events.retrieve(eventParams).then(console.log); }); });
Arguments
Argument | Example | Required | Description |
---|---|---|---|
queue_id |
1375801870:2942 |
Optional | The ID of a queue that you registered via |
last_event_id |
-1 |
Optional | The highest event ID in this queue that you've received and wish to acknowledge. See the code for |
dont_block |
`True` or `False` |
Optional | Set to |
Note: The arguments documented above are optional in the sense that
even if you haven't registered a queue by explicitly requesting the
https://omegaletter.chat/api/v1/register
endpoint, you could pass the arguments for
the https://omegaletter.chat/api/v1/register
endpoint to this
endpoint and a queue would be registered in the absence of a queue_id
.
You may also pass in the following keyword arguments to call_on_each_event
:
Argument | Example | Required | Description |
---|---|---|---|
narrow |
narrow=['stream', 'Denmark'] |
Optional | A JSON-encoded array of length 2 indicating the narrow for which you'd like to receive events for. For instance, to receive events for the stream |
event_types |
event_types=['message'] |
Optional | A JSON-encoded array indicating which types of events you're interested in. Values that you might find useful include: |
Response
Return values
events
: An array (possibly zero-length ifdont_block
is set) of events with IDs newer thanlast_event_id
. Event IDs are guaranted to be increasing, but they are not guaranteed to be consecutive.
Example response
A typical successful JSON response may look like:
{ "events": [ { "id": 0, "message": { "avatar_url": "https://url/for/othello-bots/avatar", "client": "website", "content": "Something is rotten in the state of Denmark.", "content_type": "text/x-markdown", "display_recipient": "Denmark", "id": 12345678, "recipient_id": 12314, "sender_email": "othello-bot@example.com", "sender_full_name": "Othello Bot", "sender_id": 13215, "sender_realm_str": "example", "sender_short_name": "othello-bot", "subject": "Castle", "subject_links": [], "timestamp": 1375978403, "type": "stream" }, "type": "message" }, { "id": 1, "message": { "avatar_url": "https://url/for/othello-bots/avatar", "client": "website", "content": "I come not, friends, to steal away your hearts.", "content_type": "text/x-markdown", "display_recipient": [ { "email": "hamlet@example.com", "full_name": "Hamlet of Denmark", "id": 31572, "short_name": "hamlet" } ], "id": 12345679, "recipient_id": 18391, "sender_email": "othello-bot@example.com", "sender_full_name": "Othello Bot", "sender_id": 13215, "sender_realm_str": "example", "sender_short_name": "othello-bot", "subject": "", "subject_links": [], "timestamp": 1375978404, "type": "private" }, "type": "message" } ], "msg": "", "result": "success" }