diff --git a/CHANGELOG.md b/CHANGELOG.md
index 34f1a9b..02f6cfd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased][Unreleased]
+Added:
+1. (#429) Add *TelegramBot#getStickerSet* (by @CapacitorSet, @LibertyLocked)
* * *
diff --git a/doc/api.md b/doc/api.md
index ad7e7e6..e9add98 100644
--- a/doc/api.md
+++ b/doc/api.md
@@ -75,6 +75,7 @@ TelegramBot
* [.sendInvoice(chatId, title, description, payload, providerToken, startParameter, currency, prices, [options])](#TelegramBot+sendInvoice) ⇒ Promise
* [.answerShippingQuery(shippingQueryId, ok, [options])](#TelegramBot+answerShippingQuery) ⇒ Promise
* [.answerPreCheckoutQuery(preCheckoutQueryId, ok, [options])](#TelegramBot+answerPreCheckoutQuery) ⇒ Promise
+ * [.getStickerSet(name, [options])](#TelegramBot+getStickerSet) ⇒ Promise
* _static_
* [.Promise](#TelegramBot.Promise)
@@ -977,6 +978,19 @@ Use this method to confirm shipping of a product.
| ok | Boolean
| Specify if every order details are ok |
| [options] | Object
| Additional Telegram query options |
+
+
+### telegramBot.getStickerSet(name, [options]) ⇒ Promise
+Use this method to get a sticker set. On success, a [StickerSet](https://core.telegram.org/bots/api#stickerset) object is returned.
+
+**Kind**: instance method of [TelegramBot](#TelegramBot)
+**See**: https://core.telegram.org/bots/api#getstickerset
+
+| Param | Type | Description |
+| --- | --- | --- |
+| name | String
| Name of the sticker set |
+| [options] | Object
| Additional Telegram query options |
+
### TelegramBot.Promise
diff --git a/src/telegram.js b/src/telegram.js
index ffedbfa..d3147e3 100644
--- a/src/telegram.js
+++ b/src/telegram.js
@@ -1499,6 +1499,19 @@ class TelegramBot extends EventEmitter {
form.ok = ok;
return this._request('answerPreCheckoutQuery', { form });
}
+
+ /**
+ * Use this method to get a sticker set. On success, a [StickerSet](https://core.telegram.org/bots/api#stickerset) object is returned.
+ *
+ * @param {String} name Name of the sticker set
+ * @param {Object} [options] Additional Telegram query options
+ * @return {Promise}
+ * @see https://core.telegram.org/bots/api#getstickerset
+ */
+ getStickerSet(name, form = {}) {
+ form.name = name;
+ return this._request('getStickerSet', { form });
+ }
}
module.exports = TelegramBot;
diff --git a/test/README.md b/test/README.md
index 0e5a091..fa6f19f 100644
--- a/test/README.md
+++ b/test/README.md
@@ -10,9 +10,14 @@ export TEST_USER_ID=
# Group Id which to use in some of the tests, e.g. for TelegramBot#getChat()
export TEST_GROUP_ID=
-# Game short name which to use in some of the tests, e.g. TelegramBot#sendGame()
+# Game short name to use in some tests, e.g. TelegramBot#sendGame()
+# Defaults to "medusalab_test".
export TEST_GAME_SHORT_NAME=
+# Sticker set name to use in some tests, e.g. TelegramBot#getStickerSet()
+# Defaults to "pusheen".
+export TEST_STICKER_SET_NAME=
+
# Payment provider token to be used
export TEST_PROVIDER_TOKEN=
diff --git a/test/telegram.js b/test/telegram.js
index 05938f3..22e7f4a 100644
--- a/test/telegram.js
+++ b/test/telegram.js
@@ -26,6 +26,7 @@ if (!PROVIDER_TOKEN && !isCI) { // If is not running in Travis / Appveyor
const USERID = process.env.TEST_USER_ID || 777000;
const GROUPID = process.env.TEST_GROUP_ID || -1001075450562;
const GAME_SHORT_NAME = process.env.TEST_GAME_SHORT_NAME || 'medusalab_test';
+const STICKER_SET_NAME = process.env.TEST_STICKER_SET_NAME || 'pusheen';
const timeout = 60 * 1000;
let portindex = 8091;
const staticPort = portindex++;
@@ -1355,4 +1356,19 @@ describe('TelegramBot', function telegramSuite() {
describe.skip('#answerShippingQuery', function answerShippingQuerySuite() {});
describe.skip('#answerPreCheckoutQuery', function answerPreCheckoutQuerySuite() {});
+
+ describe('#getStickerSet', function getStickerSetSuite() {
+ before(function before() {
+ utils.handleRatelimit(bot, 'getStickerSet', this);
+ });
+ it('should get the sticker set given the name of the set', function test() {
+ return bot.getStickerSet(STICKER_SET_NAME).then(resp => {
+ assert.ok(is.object(resp));
+ assert.equal(resp.name.toLowerCase(), STICKER_SET_NAME);
+ assert.ok(is.string(resp.title));
+ assert.ok(is.boolean(resp.contains_masks));
+ assert.ok(is.array(resp.stickers));
+ });
+ });
+ });
}); // End Telegram