messenger-batch
Version:
Gracefully batching messenger requests.
81 lines (54 loc) • 1.81 kB
Markdown
# messenger-batch
[](https://www.npmjs.com/package/messenger-batch)
[](https://travis-ci.org/Yoctol/messenger-batch)
[](https://opensource.org/licenses/MIT)
> Gracefully batching messenger requests.
## Installation
```sh
npm install messenger-batch
```
This module is based on the approach described in [Making Batch Requests](https://developers.facebook.com/docs/graph-api/making-multiple-requests/).
## Usage
```js
const { MessengerClient, MessengerBatch } = require('messaging-api-messenger');
const { MessengerBatchQueue } = require('messenger-batch');
const client = MessengerClient.connect({
accessToken: ACCESS_TOKEN,
});
const queue = new MessengerBatchQueue(client);
(async () => {
await queue.push(
MessengerBatch.sendText('psid', 'hello!');
);
await queue.push(
MessengerBatch.sendMessage('psid', {
attachment: {
type: 'image',
payload: {
url:
'https://cdn.free.com.tw/blog/wp-content/uploads/2014/08/Placekitten480-g.jpg',
},
},
})
);
const profile = await queue.push(MessengerBatch.getUserProfile('psid'));
console.log(profile);
})();
```
Retry for error: `(#613) Calls to this api have exceeded the rate limit.`.
```js
const { MessengerBatchQueue, isError613 } = require('messenger-batch');
const queue = new MessengerBatchQueue(client, {
shouldRetry: isError613,
retryTimes: 2,
});
```
## Options
### delay
Default: `1000`.
### retryTimes
Default: `0`.
### shouldRetry
Default: `() => true`.
## License
MIT © [Yoctol](https://github.com/Yoctol/messenger-batch)