Описание
Используйте этот метод для создания новой основной пригласительной ссылки для чата; все ранее созданные основные ссылки становятся недействительными. Бот должен быть администратором в чате и иметь соответствующие права администратора для выполнения этой операции. В случае успеха возвращает новую пригласительную ссылку в виде String.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer или String | Да | Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername) |
Примечание: Каждый администратор в чате создаёт свои собственные пригласительные ссылки. Боты не могут использовать ссылки, созданные другими администраторами. Если вы хотите, чтобы ваш бот работал с пригласительными ссылками, ему нужно создать свою собственную ссылку с помощью exportChatInviteLink или вызвав метод getChat. Если вашему боту нужно создать новую основную пригласительную ссылку, заменяющую предыдущую, снова используйте exportChatInviteLink.
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$chatId = 'CHAT_ID_OR_USERNAME'; // Например: 123456789 или '@channelusername'
$apiUrl = "https://api.telegram.org/bot{$botToken}/exportChatInviteLink";
$data = [
'chat_id' => $chatId,
];
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
$result = json_decode($response, true);
if ($result['ok']) {
$inviteLink = $result['result'];
echo "Новая пригласительная ссылка: {$inviteLink}\n";
} else {
echo "Ошибка: {$result['description']}\n";
}
} else {
echo "HTTP ошибка: {$httpCode}\n";
}
// Альтернативный вариант с использованием file_get_contents
/*
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/json\r\n",
'content' => json_encode($data),
],
]);
$response = file_get_contents($apiUrl, false, $context);
if ($response !== false) {
$result = json_decode($response, true);
if ($result['ok']) {
echo "Новая пригласительная ссылка: {$result['result']}\n";
}
}
*/
python
import requests
def export_chat_invite_link(bot_token, chat_id):
"""
Генерирует новую основную пригласительную ссылку для чата.
Args:
bot_token (str): Токен вашего бота
chat_id (int or str): ID чата или username канала
Returns:
str: Новая пригласительная ссылка или None в случае ошибки
"""
url = f"https://api.telegram.org/bot{bot_token}/exportChatInviteLink"
payload = {
"chat_id": chat_id
}
try:
response = requests.post(url, json=payload)
response.raise_for_status()
result = response.json()
if result.get("ok"):
return result.get("result")
else:
print(f"Ошибка: {result.get('description')}")
return None
except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {e}")
return None
except ValueError as e:
print(f"Ошибка парсинга JSON: {e}")
return None
# Пример использования
if __name__ == "__main__":
# Замените на ваш токен бота
BOT_TOKEN = "YOUR_BOT_TOKEN_HERE"
# Пример с ID чата (число)
chat_id_number = -1001234567890
invite_link = export_chat_invite_link(BOT_TOKEN, chat_id_number)
if invite_link:
print(f"Новая ссылка для чата {chat_id_number}: {invite_link}")
# Пример с username канала (строка)
channel_username = "@my_test_channel"
invite_link = export_chat_invite_link(BOT_TOKEN, channel_username)
if invite_link:
print(f"Новая ссылка для канала {channel_username}: {invite_link}")
История изменений
- API 3.1. Добавлен метод exportChatInviteLink
- API 4.4. Обновлен метод exportChatInviteLink: Теперь поддерживает базовые группы (ранее только супергруппы и каналы)
Дополнительно
- getChat - Метод для получения актуальной информации о чате, возвращающий объект ChatFullInfo.