Messaging API client for Slack
npm i --save messaging-api-slack
or
yarn add messaging-api-slack
Get your bot user OAuth access token by setup OAuth & Permissions function to your app or check the Using OAuth 2.0 document.
const { SlackOAuthClient } = require('messaging-api-slack');
// get access token by setup OAuth & Permissions function to your app.
// https://api.slack.com/docs/oauth
const client = new SlackOAuthClient({
accessToken: 'xoxb-000000000000-xxxxxxxxxxxxxxxxxxxxxxxx',
});
messaging-api-slack
uses axios as HTTP client. We use axios-error package to wrap API error instances for better formatting error messages. Directly console.log
on the error instance will return formatted message. If you'd like to get the axios request
, response
, or config
, you can still get them via those keys on the error instance.
client.callMethod(method, body).catch((error) => {
console.log(error); // formatted error message
console.log(error.stack); // error stack trace
console.log(error.config); // axios request config
console.log(error.request); // HTTP request
console.log(error.response); // HTTP response
});
All methods return a Promise.
callMethod(method, body)
- Official docs
Calling any API methods which follow slack calling conventions.
Param | Type | Description |
---|---|---|
method | String |
One of API Methods |
body | Object |
Body that the method needs. |
Example:
client.callMethod('chat.postMessage', { channel: 'C8763', text: 'Hello!' });
- getConversationInfo
- getConversationMembers
- getAllConversationMembers
- getConversationList
- getAllConversationList
Get your webhook url by adding a Incoming Webhooks integration to your team or setup Incoming Webhooks function to your app.
const { SlackWebhookClient } = require('messaging-api-slack');
// get webhook URL by adding a Incoming Webhook integration to your team.
// https://my.slack.com/services/new/incoming-webhook/
const client = new SlackWebhookClient({
url: 'https://hooks.slack.com/services/XXXXXXXX/YYYYYYYY/zzzzzZZZZZ',
});
All methods return a Promise.
Send API - Official docs
To enable default request debugger, use following DEBUG
env variable:
DEBUG=messaging-api:request
If you want to use a custom request logging function, just provide your own onRequest
:
// for SlackOAuthClient
const client = new SlackOAuthClient({
accessToken: ACCESS_TOKEN,
onRequest: ({ method, url, headers, body }) => {
/* */
},
});
// for SlackWebhookClient
const client = new SlackWebhookClient({
url: URL,
onRequest: ({ method, url, headers, body }) => {
/* */
},
});
To avoid sending requests to real Slack server, specify the origin
option when constructing your client:
const { SlackOAuthClient } = require('messaging-api-slack');
const client = new SlackOAuthClient({
accessToken: ACCESS_TOKEN,
origin: 'https://mydummytestserver.com',
});
Warning: Don't do this on your production server.