Метод exportChatInviteLink

Метод создаёт новую основную пригласительную ссылку для чата, делая старые недействительными, и возвращает её строкой.

Описание

Используйте этот метод для создания новой основной пригласительной ссылки для чата; все ранее созданные основные ссылки становятся недействительными. Бот должен быть администратором в чате и иметь соответствующие права администратора для выполнения этой операции. В случае успеха возвращает новую пригласительную ссылку в виде 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.
Комментарии