Send a message

Send a stream or a private message.

POST https://studyscience.wyzepal.com/api/v1/messages

Usage examples

#!/usr/bin/env python3

import wyzepal

# Pass the path to your wyzepalrc file here.
client = wyzepal.Client(config_file="~/wyzepalrc")

# Send a stream message
request = {
    "type": "stream",
    "to": "Denmark",
    "subject": "Castle",
    "content": "I come not, friends, to steal away your hearts."
}
result = client.send_message(request)
print(result)

# Send a private message
request = {
    "type": "private",
    "to": "iago@wyzepal.com",
    "content": "With mirth and laughter let old wrinkles come."
}
result = client.send_message(request)
print(result)

More examples and documentation can be found here.

const wyzepal = require('wyzepal-js');

// Pass the path to your wyzepalrc file here.
const config = {
    wyzepalrc: 'wyzepalrc',
};

// Send a stream message
wyzepal(config).then((client) => {
    // Send a message
    const params = {
        to: 'Denmark',
        type: 'stream',
        subject: 'Castle',
        content: 'I come not, friends, to steal away your hearts.'
    }

    client.messages.send(params).then(console.log);
});

// Send a private message
wyzepal(config).then((client) => {
    // Send a private message
    const params = {
        to: 'hamlet@example.com',
        type: 'private',
        content: 'With mirth and laughter let old wrinkles come.',
    }

    client.messages.send(params).then(console.log);
});

# For stream messages
curl -X POST https://studyscience.wyzepal.com/api/v1/messages \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    -d "type=stream" \
    -d "to=Denmark" \
    -d "subject=Castle" \
    -d $"content=I come not, friends, to steal away your hearts."

# For private messages
curl -X POST https://studyscience.wyzepal.com/api/v1/messages \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    -d "type=private" \
    -d "to=hamlet@example.com" \
    -d $"content=With mirth and laughter let old wrinkles come."

You can use wyzepal-send (available after you pip install wyzepal) to easily send WyzePals from the command-line, providing the message content via STDIN.

# For stream messages
wyzepal-send --stream Denmark --subject Castle \
    --user othello-bot@example.com --api-key a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5

# For private messages
wyzepal-send hamlet@example.com \
    --user othello-bot@example.com --api-key a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5

Passing in the message on the command-line

If you'd like, you can also provide the message on the command-line with the -m or --message flag, as follows:

wyzepal-send --stream Denmark --subject Castle \
    --message "I come not, friends, to steal away your hearts." \
    --user othello-bot@example.com --api-key a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5

You can omit the user and api-key arguments if you have a ~/.wyzepalrc file.

Arguments

Argument Example Required Description
type "private" Yes

The type of message to be sent. private for a private message and stream for a stream message. Must be one of: private, stream.

to "aaron@wyzepal.com, iago@wyzepal.com" Yes

The destination stream, or a CSV/JSON-encoded list containing the usernames (emails) of the recipients.

topic "Castle" No

The topic of the message. Only required if type is stream, ignored otherwise. Maximum length of 60 characters.

content "Hello" Yes

The content of the message. Maximum message size of 10000 bytes.

Response

Return values

  • id: The ID of the newly created message

Example response

A typical successful JSON response may look like:

{
    "id": 42,
    "msg": "",
    "result": "success"
}

A typical failed JSON response for when a stream message is sent to a stream that does not exist:

{
    "code": "STREAM_DOES_NOT_EXIST",
    "msg": "Stream 'nonexistent_stream' does not exist",
    "result": "error",
    "stream": "nonexistent_stream"
}

A typical failed JSON response for when a private message is sent to a user that does not exist:

{
    "code": "BAD_REQUEST",
    "msg": "Invalid email 'eeshan@wyzepal.com'",
    "result": "error"
}