Описание
Используйте этот метод для редактирования ссылки-приглашения на подписку, созданной ботом. Бот должен иметь права администратора can_invite_users. Возвращает отредактированную ссылку-приглашение в виде объекта ChatInviteLink.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer или String | Да | Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername) |
| invite_link | String | Да | Ссылка-приглашение для редактирования |
| name | String | Необязательный | Название ссылки-приглашения; 0-32 символа |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/editChatSubscriptionInviteLink";
// Параметры запроса
$params = [
'chat_id' => '@channel_username', // или числовой ID
'invite_link' => 'https://t.me/joinchat/AAAAA_example_link',
'name' => 'Premium Subscription' // опционально
];
// Инициализация cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: multipart/form-data'
]);
// Выполнение запроса
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
echo 'cURL Error: ' . curl_error($ch);
} else {
$data = json_decode($response, true);
if ($data['ok']) {
$inviteLink = $data['result'];
echo "Edited invite link:\n";
echo "URL: " . $inviteLink['invite_link'] . "\n";
echo "Name: " . ($inviteLink['name'] ?? 'N/A') . "\n";
echo "Creator: " . $inviteLink['creator']['first_name'] . "\n";
echo "Expire date: " . ($inviteLink['expire_date'] ?? 'Never') . "\n";
echo "Member limit: " . ($inviteLink['member_limit'] ?? 'Unlimited') . "\n";
echo "Pending join request count: " . ($inviteLink['pending_join_request_count'] ?? 0) . "\n";
} else {
echo "Error: " . $data['description'] . "\n";
}
}
curl_close($ch);
// Альтернативный вариант с использованием file_get_contents
/*
$options = [
'http' => [
'header' => "Content-Type: multipart/form-data\r\n",
'method' => 'POST',
'content' => http_build_query($params)
]
];
$context = stream_context_create($options);
$response = file_get_contents($apiUrl, false, $context);
$data = json_decode($response, true);
*/
?>
python
import requests
def edit_chat_subscription_invite_link(bot_token, chat_id, invite_link, name=None):
"""
Редактирует ссылку-приглашение для подписки в канале.
Args:
bot_token (str): Токен бота
chat_id (int or str): ID чата или username канала
invite_link (str): Ссылка для редактирования
name (str, optional): Новое название ссылки (0-32 символа)
Returns:
dict: Объект ChatInviteLink или None в случае ошибки
"""
url = f"https://api.telegram.org/bot{bot_token}/editChatSubscriptionInviteLink"
payload = {
"chat_id": chat_id,
"invite_link": invite_link
}
if name is not None:
payload["name"] = name
try:
response = requests.post(url, json=payload)
response.raise_for_status()
return response.json().get("result")
except requests.exceptions.RequestException as e:
print(f"Ошибка при редактировании ссылки: {e}")
return None
# Пример использования
if __name__ == "__main__":
BOT_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "@channel_username" # или числовой ID
INVITE_LINK = "https://t.me/+abc123def456"
NEW_NAME = "Premium Subscription"
result = edit_chat_subscription_invite_link(
bot_token=BOT_TOKEN,
chat_id=CHAT_ID,
invite_link=INVITE_LINK,
name=NEW_NAME
)
if result:
print(f"Ссылка отредактирована: {result.get('invite_link')}")
print(f"Название: {result.get('name')}")
print(f"Создатель: {result.get('creator', {}).get('username')}")
else:
print("Не удалось отредактировать ссылку")
История изменений
- API 7.9. Добавлен метод editChatSubscriptionInviteLink
Дополнительно
- ChatInviteLink - Объект, представляющий пригласительную ссылку для чата с параметрами создания, ограничениями и настройками подписки.