2018-08-07 17:52:03 +02:00
|
|
|
# Get user presence
|
|
|
|
|
|
|
|
Get the presence status for a specific user.
|
|
|
|
|
|
|
|
This endpoint is most useful for embedding data about a user's
|
|
|
|
presence status in other sites (E.g. an employee directory). Full
|
|
|
|
Zulip clients like mobile/desktop apps will want to use the main
|
|
|
|
presence endpoint, which returns data for all active users in the
|
|
|
|
organization, instead.
|
|
|
|
|
|
|
|
`GET {{ api_url }}/v1/users/<email>/presence`
|
|
|
|
|
|
|
|
See
|
|
|
|
[Zulip's developer documentation](https://zulip.readthedocs.io/en/latest/subsystems/presence.html)
|
|
|
|
for details on the data model for presence in Zulip.
|
|
|
|
|
|
|
|
## Usage examples
|
|
|
|
|
2018-09-17 16:27:32 +02:00
|
|
|
{start_tabs}
|
|
|
|
{tab|python}
|
2018-08-07 17:52:03 +02:00
|
|
|
|
2018-09-17 16:27:32 +02:00
|
|
|
{generate_code_example(python)|/users/{email}/presence:get|example}
|
|
|
|
|
|
|
|
{tab|curl}
|
2018-08-07 17:52:03 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
curl {{ api_url }}/v1/users/<email>/presence \
|
|
|
|
-u BOT_EMAIL_ADDRESS:BOT_API_KEY
|
|
|
|
```
|
|
|
|
|
2018-09-17 16:27:32 +02:00
|
|
|
{end_tabs}
|
2018-08-07 17:52:03 +02:00
|
|
|
|
|
|
|
## Arguments
|
|
|
|
|
|
|
|
{generate_api_arguments_table|zulip.yaml|/users/{email}/presence:get}
|
|
|
|
|
|
|
|
## Response
|
|
|
|
|
|
|
|
#### Return values
|
|
|
|
|
|
|
|
* `presence`: An object containing the presence details for every type
|
|
|
|
of client the user has ever logged into.
|
|
|
|
* `<client_name>` or `aggregated`: the keys for these objects are
|
|
|
|
the names of the different clients where this user is logged in,
|
|
|
|
like `website`, `ZulipDesktop`, `ZulipTerminal`, or
|
|
|
|
`ZulipMobile`. There is also an `aggregated` key, which matches
|
|
|
|
the contents of the object that has been updated most
|
|
|
|
recently. For most applications, you'll just want to look at the
|
|
|
|
`aggregated` key.
|
|
|
|
* `timestamp`: when this update was received; if the timestamp
|
|
|
|
is more than a few minutes in the past, the user is offline.
|
|
|
|
* `status`: either `active` or `idle`: whether the user had
|
|
|
|
recently interacted with Zulip at the time in the timestamp
|
|
|
|
(this distinguishes orange vs. green dots in the Zulip web
|
|
|
|
UI; orange/idle means we don't know whether the user is
|
|
|
|
actually at their computer or just left the Zulip app open
|
|
|
|
on their desktop).
|
|
|
|
* `pushable`: whether the client accepts push notifications or not.
|
|
|
|
* `client`: the name of the client this presence information refers to.
|
|
|
|
Matches the object's key if this isn't the `aggregated` object.
|
|
|
|
|
|
|
|
#### Example response
|
|
|
|
|
|
|
|
A typical successful JSON response may look like:
|
|
|
|
|
|
|
|
{generate_code_example|/users/{email}/presence:get|fixture(200)}
|