mirror of
https://github.com/yagop/node-telegram-bot-api
synced 2025-08-29 13:27:44 +00:00
Closes #158: Add new methods from the API v2.1
This commit is contained in:
commit
626f183cb7
70
README.md
70
README.md
@ -60,7 +60,6 @@ TelegramBot
|
|||||||
* [new TelegramBot(token, [options])](#new_TelegramBot_new)
|
* [new TelegramBot(token, [options])](#new_TelegramBot_new)
|
||||||
* [.stopPolling()](#TelegramBot+stopPolling) ⇒ <code>Promise</code>
|
* [.stopPolling()](#TelegramBot+stopPolling) ⇒ <code>Promise</code>
|
||||||
* [.getMe()](#TelegramBot+getMe) ⇒ <code>Promise</code>
|
* [.getMe()](#TelegramBot+getMe) ⇒ <code>Promise</code>
|
||||||
* [.getChat(chatId)](#TelegramBot+getChat) ⇒ <code>Promise</code>
|
|
||||||
* [.setWebHook(url, [cert])](#TelegramBot+setWebHook)
|
* [.setWebHook(url, [cert])](#TelegramBot+setWebHook)
|
||||||
* [.getUpdates([timeout], [limit], [offset])](#TelegramBot+getUpdates) ⇒ <code>Promise</code>
|
* [.getUpdates([timeout], [limit], [offset])](#TelegramBot+getUpdates) ⇒ <code>Promise</code>
|
||||||
* [.sendMessage(chatId, text, [options])](#TelegramBot+sendMessage) ⇒ <code>Promise</code>
|
* [.sendMessage(chatId, text, [options])](#TelegramBot+sendMessage) ⇒ <code>Promise</code>
|
||||||
@ -87,6 +86,10 @@ TelegramBot
|
|||||||
* [.downloadFile(fileId, downloadDir)](#TelegramBot+downloadFile) ⇒ <code>Promise</code>
|
* [.downloadFile(fileId, downloadDir)](#TelegramBot+downloadFile) ⇒ <code>Promise</code>
|
||||||
* [.onText(regexp, callback)](#TelegramBot+onText)
|
* [.onText(regexp, callback)](#TelegramBot+onText)
|
||||||
* [.onReplyToMessage(chatId, messageId, callback)](#TelegramBot+onReplyToMessage)
|
* [.onReplyToMessage(chatId, messageId, callback)](#TelegramBot+onReplyToMessage)
|
||||||
|
* [.getChat(chatId)](#TelegramBot+getChat) ⇒ <code>Promise</code>
|
||||||
|
* [.getChatAdministrators(chatId)](#TelegramBot+getChatAdministrators) ⇒ <code>Promise</code>
|
||||||
|
* [.getChatMembersCount(chatId)](#TelegramBot+getChatMembersCount) ⇒ <code>Promise</code>
|
||||||
|
* [.getChatMember(chatId, userId)](#TelegramBot+getChatMember) ⇒ <code>Promise</code>
|
||||||
|
|
||||||
<a name="new_TelegramBot_new"></a>
|
<a name="new_TelegramBot_new"></a>
|
||||||
|
|
||||||
@ -121,20 +124,6 @@ Returns basic information about the bot in form of a `User` object.
|
|||||||
|
|
||||||
**Kind**: instance method of <code>[TelegramBot](#TelegramBot)</code>
|
**Kind**: instance method of <code>[TelegramBot](#TelegramBot)</code>
|
||||||
**See**: https://core.telegram.org/bots/api#getme
|
**See**: https://core.telegram.org/bots/api#getme
|
||||||
<a name="TelegramBot+getChat"></a>
|
|
||||||
|
|
||||||
### telegramBot.getChat(chatId) ⇒ <code>Promise</code>
|
|
||||||
Use this method to get up to date information about the chat
|
|
||||||
(current name of the user for one-on-one conversations, current
|
|
||||||
username of a user, group or channel, etc.).
|
|
||||||
|
|
||||||
**Kind**: instance method of <code>[TelegramBot](#TelegramBot)</code>
|
|
||||||
**See**: https://core.telegram.org/bots/api#getchat
|
|
||||||
|
|
||||||
| Param | Type | Description |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| chatId | <code>Number</code> | <code>String</code> | Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) |
|
|
||||||
|
|
||||||
<a name="TelegramBot+setWebHook"></a>
|
<a name="TelegramBot+setWebHook"></a>
|
||||||
|
|
||||||
### telegramBot.setWebHook(url, [cert])
|
### telegramBot.setWebHook(url, [cert])
|
||||||
@ -531,4 +520,55 @@ Register a reply to wait for a message response.
|
|||||||
| messageId | <code>Number</code> | <code>String</code> | The message id to be replied. |
|
| messageId | <code>Number</code> | <code>String</code> | The message id to be replied. |
|
||||||
| callback | <code>function</code> | Callback will be called with the reply message. |
|
| callback | <code>function</code> | Callback will be called with the reply message. |
|
||||||
|
|
||||||
|
<a name="TelegramBot+getChat"></a>
|
||||||
|
|
||||||
|
### telegramBot.getChat(chatId) ⇒ <code>Promise</code>
|
||||||
|
Use this method to get up to date information about the chat
|
||||||
|
(current name of the user for one-on-one conversations, current
|
||||||
|
username of a user, group or channel, etc.).
|
||||||
|
|
||||||
|
**Kind**: instance method of <code>[TelegramBot](#TelegramBot)</code>
|
||||||
|
**See**: https://core.telegram.org/bots/api#getchat
|
||||||
|
|
||||||
|
| Param | Type | Description |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| chatId | <code>Number</code> | <code>String</code> | Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) |
|
||||||
|
|
||||||
|
<a name="TelegramBot+getChatAdministrators"></a>
|
||||||
|
|
||||||
|
### telegramBot.getChatAdministrators(chatId) ⇒ <code>Promise</code>
|
||||||
|
Returns the administrators in a chat in form of an Array of `ChatMember` objects.
|
||||||
|
|
||||||
|
**Kind**: instance method of <code>[TelegramBot](#TelegramBot)</code>
|
||||||
|
**See**: https://core.telegram.org/bots/api#getchatadministrators
|
||||||
|
|
||||||
|
| Param | Type | Description |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| chatId | <code>Number</code> | <code>String</code> | Unique identifier for the target group or username of the target supergroup |
|
||||||
|
|
||||||
|
<a name="TelegramBot+getChatMembersCount"></a>
|
||||||
|
|
||||||
|
### telegramBot.getChatMembersCount(chatId) ⇒ <code>Promise</code>
|
||||||
|
Use this method to get the number of members in a chat.
|
||||||
|
|
||||||
|
**Kind**: instance method of <code>[TelegramBot](#TelegramBot)</code>
|
||||||
|
**See**: https://core.telegram.org/bots/api#getchatmemberscount
|
||||||
|
|
||||||
|
| Param | Type | Description |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| chatId | <code>Number</code> | <code>String</code> | Unique identifier for the target group or username of the target supergroup |
|
||||||
|
|
||||||
|
<a name="TelegramBot+getChatMember"></a>
|
||||||
|
|
||||||
|
### telegramBot.getChatMember(chatId, userId) ⇒ <code>Promise</code>
|
||||||
|
Use this method to get information about a member of a chat.
|
||||||
|
|
||||||
|
**Kind**: instance method of <code>[TelegramBot](#TelegramBot)</code>
|
||||||
|
**See**: https://core.telegram.org/bots/api#getchatmember
|
||||||
|
|
||||||
|
| Param | Type | Description |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| chatId | <code>Number</code> | <code>String</code> | Unique identifier for the target group or username of the target supergroup |
|
||||||
|
| userId | <code>String</code> | Unique identifier of the target user |
|
||||||
|
|
||||||
* * *
|
* * *
|
||||||
|
@ -205,21 +205,6 @@ class TelegramBot extends EventEmitter {
|
|||||||
return this._request(_path);
|
return this._request(_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Use this method to get up to date information about the chat
|
|
||||||
* (current name of the user for one-on-one conversations, current
|
|
||||||
* username of a user, group or channel, etc.).
|
|
||||||
* @param {Number|String} chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)
|
|
||||||
* @return {Promise}
|
|
||||||
* @see https://core.telegram.org/bots/api#getchat
|
|
||||||
*/
|
|
||||||
getChat(chatId) {
|
|
||||||
const form = {
|
|
||||||
chat_id: chatId
|
|
||||||
};
|
|
||||||
return this._request('getChat', { form });
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specify an url to receive incoming updates via an outgoing webHook.
|
* Specify an url to receive incoming updates via an outgoing webHook.
|
||||||
* @param {String} url URL where Telegram will make HTTP Post. Leave empty to
|
* @param {String} url URL where Telegram will make HTTP Post. Leave empty to
|
||||||
@ -755,6 +740,62 @@ class TelegramBot extends EventEmitter {
|
|||||||
callback
|
callback
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this method to get up to date information about the chat
|
||||||
|
* (current name of the user for one-on-one conversations, current
|
||||||
|
* username of a user, group or channel, etc.).
|
||||||
|
* @param {Number|String} chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)
|
||||||
|
* @return {Promise}
|
||||||
|
* @see https://core.telegram.org/bots/api#getchat
|
||||||
|
*/
|
||||||
|
getChat(chatId) {
|
||||||
|
const form = {
|
||||||
|
chat_id: chatId
|
||||||
|
};
|
||||||
|
return this._request('getChat', { form });
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the administrators in a chat in form of an Array of `ChatMember` objects.
|
||||||
|
* @param {Number|String} chatId Unique identifier for the target group or username of the target supergroup
|
||||||
|
* @return {Promise}
|
||||||
|
* @see https://core.telegram.org/bots/api#getchatadministrators
|
||||||
|
*/
|
||||||
|
getChatAdministrators(chatId) {
|
||||||
|
const form = {
|
||||||
|
chat_id: chatId
|
||||||
|
};
|
||||||
|
return this._request('getChatAdministrators', { form });
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this method to get the number of members in a chat.
|
||||||
|
* @param {Number|String} chatId Unique identifier for the target group or username of the target supergroup
|
||||||
|
* @return {Promise}
|
||||||
|
* @see https://core.telegram.org/bots/api#getchatmemberscount
|
||||||
|
*/
|
||||||
|
getChatMembersCount(chatId) {
|
||||||
|
const form = {
|
||||||
|
chat_id: chatId
|
||||||
|
};
|
||||||
|
return this._request('getChatMembersCount', { form });
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this method to get information about a member of a chat.
|
||||||
|
* @param {Number|String} chatId Unique identifier for the target group or username of the target supergroup
|
||||||
|
* @param {String} userId Unique identifier of the target user
|
||||||
|
* @return {Promise}
|
||||||
|
* @see https://core.telegram.org/bots/api#getchatmember
|
||||||
|
*/
|
||||||
|
getChatMember(chatId, userId) {
|
||||||
|
const form = {
|
||||||
|
chat_id: chatId,
|
||||||
|
user_id: userId
|
||||||
|
};
|
||||||
|
return this._request('getChatMember', { form });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = TelegramBot;
|
module.exports = TelegramBot;
|
||||||
|
@ -4,5 +4,7 @@ Running the tests:
|
|||||||
export TEST_TELEGRAM_TOKEN=<YOUR_BOT_TOKEN>
|
export TEST_TELEGRAM_TOKEN=<YOUR_BOT_TOKEN>
|
||||||
# User Id which you want to send the messages.
|
# User Id which you want to send the messages.
|
||||||
export TEST_USER_ID=<USER_ID>
|
export TEST_USER_ID=<USER_ID>
|
||||||
|
# Group Id which to use in some of the tests, e.g. for TelegramBot#getChat()
|
||||||
|
export TEST_GROUP_ID=<GROUP_ID>
|
||||||
npm run test
|
npm run test
|
||||||
```
|
```
|
||||||
|
@ -14,6 +14,7 @@ if (!TOKEN) {
|
|||||||
|
|
||||||
// Telegram service if not User Id
|
// Telegram service if not User Id
|
||||||
const USERID = process.env.TEST_USER_ID || 777000;
|
const USERID = process.env.TEST_USER_ID || 777000;
|
||||||
|
const GROUPID = process.env.TEST_GROUP_ID || -1001075450562;
|
||||||
|
|
||||||
describe('Telegram', function telegramSuite() {
|
describe('Telegram', function telegramSuite() {
|
||||||
describe('#setWebHook', function setWebHookSuite() {
|
describe('#setWebHook', function setWebHookSuite() {
|
||||||
@ -140,6 +141,34 @@ describe('Telegram', function telegramSuite() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#getChatAdministrators', function getChatAdministratorsSuite() {
|
||||||
|
it('should return an Array', function test() {
|
||||||
|
const bot = new Telegram(TOKEN);
|
||||||
|
return bot.getChatAdministrators(GROUPID).then(resp => {
|
||||||
|
assert.ok(Array.isArray(resp));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#getChatMembersCount', function getChatMembersCountSuite() {
|
||||||
|
it('should return an Integer', function test() {
|
||||||
|
const bot = new Telegram(TOKEN);
|
||||||
|
return bot.getChatMembersCount(GROUPID).then(resp => {
|
||||||
|
assert.ok(Number.isInteger(resp));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#getChatMember', function getChatMemberSuite() {
|
||||||
|
it('should return a ChatMember', function test() {
|
||||||
|
const bot = new Telegram(TOKEN);
|
||||||
|
return bot.getChatMember(GROUPID, USERID).then(resp => {
|
||||||
|
assert.ok(is.object(resp.user));
|
||||||
|
assert.ok(is.string(resp.status));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('#getUpdates', function getUpdatesSuite() {
|
describe('#getUpdates', function getUpdatesSuite() {
|
||||||
it('should return an Array', function test() {
|
it('should return an Array', function test() {
|
||||||
const bot = new Telegram(TOKEN);
|
const bot = new Telegram(TOKEN);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user