Описание
Используйте этот метод для создания дополнительной пригласительной ссылки для чата. Бот должен быть администратором в чате для работы этого метода и иметь соответствующие права администратора. Ссылку можно отозвать с помощью метода revokeChatInviteLink. Возвращает новую пригласительную ссылку в виде объекта ChatInviteLink.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Целое число или Строка | Да | Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername) |
| name | Строка | Опционально | Название пригласительной ссылки; 0-32 символа |
| expire_date | Целое число | Опционально | Момент времени (Unix timestamp), когда ссылка станет недействительной |
| member_limit | Целое число | Опционально | Максимальное количество пользователей, которые могут одновременно быть участниками чата после присоединения через эту пригласительную ссылку; 1-99999 |
| creates_join_request | Логический | Опционально | True, если пользователям, присоединяющимся к чату по ссылке, требуется одобрение администраторов чата. Если True, параметр member_limit не может быть указан |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/";
// Параметры для создания ссылки-приглашения
$chatId = '@channelusername'; // или ID чата, например: -1001234567890
$params = [
'chat_id' => $chatId,
'name' => 'Premium Users Link',
'expire_date' => time() + 86400, // Ссылка действительна 24 часа
'member_limit' => 50,
'creates_join_request' => false
];
// Удаляем параметры с null значениями (необязательные поля)
$params = array_filter($params, function($value) {
return $value !== null;
});
// Отправка запроса
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $apiUrl . 'createChatInviteLink',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: multipart/form-data'],
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
$data = json_decode($response, true);
if ($data['ok']) {
$inviteLink = $data['result'];
echo "Ссылка создана: " . $inviteLink['invite_link'] . "\n";
echo "Название: " . ($inviteLink['name'] ?? 'без названия') . "\n";
echo "Создатель: @" . $inviteLink['creator']['username'] . "\n";
echo "Осталось использований: " . ($inviteLink['member_limit'] ?? 'без ограничений') . "\n";
if (isset($inviteLink['expire_date'])) {
echo "Истекает: " . date('Y-m-d H:i:s', $inviteLink['expire_date']) . "\n";
}
} else {
echo "Ошибка: " . $data['description'] . "\n";
}
} else {
echo "HTTP ошибка: " . $httpCode . "\n";
}
// Альтернативный вариант с использованием file_get_contents (требует allow_url_fopen)
/*
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => http_build_query($params)
]
]);
$response = file_get_contents($apiUrl . 'createChatInviteLink', false, $context);
if ($response !== false) {
$data = json_decode($response, true);
// Обработка ответа...
}
*/
// Пример с библиотекой Guzzle (предварительно установить: composer require guzzlehttp/guzzle)
/*
use GuzzleHttp\Client;
$client = new Client();
$response = $client->post($apiUrl . 'createChatInviteLink', [
'form_params' => $params
]);
$data = json_decode($response->getBody(), true);
// Обработка ответа...
*/
?>
python
import requests
def create_chat_invite_link(bot_token, chat_id, name=None, expire_date=None, member_limit=None, creates_join_request=None):
url = f"https://api.telegram.org/bot{bot_token}/createChatInviteLink"
payload = {
"chat_id": chat_id
}
if name:
payload["name"] = name
if expire_date:
payload["expire_date"] = expire_date
if member_limit:
payload["member_limit"] = member_limit
if creates_join_request is not None:
payload["creates_join_request"] = creates_join_request
response = requests.post(url, json=payload)
return response.json()
# Пример использования
bot_token = "YOUR_BOT_TOKEN"
chat_id = "@channelusername" # или числовой ID
# Создание простой ссылки
result = create_chat_invite_link(bot_token, chat_id)
print(result)
# Создание ссылки с именем и лимитом участников
result = create_chat_invite_link(
bot_token=bot_token,
chat_id=chat_id,
name="Special Invite",
member_limit=100,
expire_date=1672531200 # Unix timestamp
)
print(result)
# Создание ссылки с запросом на вступление
result = create_chat_invite_link(
bot_token=bot_token,
chat_id=chat_id,
name="Approval Required",
creates_join_request=True
)
print(result)
История изменений
- API 5.1. Добавлен метод createChatInviteLink
- API 5.4. Обновлен метод createChatInviteLink: Добавлены параметры creates_join_request и name
Дополнительно
- revokeChatInviteLink - Метод отзывает пригласительную ссылку, созданную ботом, и возвращает информацию об отозванной ссылке.
- ChatInviteLink - Объект, представляющий пригласительную ссылку для чата с параметрами создания, ограничениями и настройками подписки.