Channel private error

Checklist I am sure the error is coming from Pyrogram's code and not elsewhere. I have searched in the issue tracker for similar bug reports, including closed ones. I ran pip3 install -U https:...

Checklist

  • I am sure the error is coming from Pyrogram’s code and not elsewhere.
  • I have searched in the issue tracker for similar bug reports, including closed ones.
  • I ran pip3 install -U https://github.com/pyrogram/pyrogram/archive/master.zip and reproduced the issue using the latest development version.

Description

Trying to catch the «pyrogram.errors.exceptions.bad_request_400.ChannelPrivate: [400 CHANNEL_PRIVATE]: The channel/supergroup is not accessible (caused by «channels.GetMessages»)» error
And this error is being caught over and over

there is an error handler example below, but it does not get there, although the entire block is wrapped in try except

I’ll add:

I noticed that these errors are obtained if the bot has previously been out of the group.
That is, while the bot is in the group, the error is caught, as soon as the bot left the error is not caught in the interval try except

def error_checker(error,group=None,title = None):
	if type(error).__name__ in ErrorName:
		ERROR_ID = error.ID
		if ERROR_ID == "CHANNEL_PRIVATE":
			app.leave_chat(group,delete=True)
        else:
        	print(type(error).__name__)
		print(error)

def new_post_chanal(client, message):
	try:
		publick = app.get_chat(message.sender_chat.id)
		chat = publick.linked_chat
		id_message = message.message_id
                app.get_history(chat.id, limit=100)
	
	except Exception as e:
		error_checker(e,message.chat.id,message.chat.title)
try:
	app = Client("my_account",config_file = f'{path_name}config.ini')
	app.add_handler(MessageHandler(new_post_chanal,filters.channel))
	app.run()
except Exception as e:
	error_checker(e)
...

Traceback

[400 CHANNEL_PRIVATE]: The channel/supergroup is not accessible (caused by «channels.GetMessages»)
Traceback (most recent call last):
File «C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramdispatcher.py», line 191, in handler_worker
await parser(update, users, chats)
File «C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramdispatcher.py», line 83, in message_parser
return await pyrogram.types.Message._parse(
File «C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramtypesmessages_and_mediamessage.py», line 720, in _parse
parsed_message.reply_to_message = await client.get_messages(
File «C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogrammethodsmessagesget_messages.py», line 114, in get_messages
r = await self.send(rpc, sleep_threshold=-1)
File «C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogrammethodsadvancedsend.py», line 77, in send
r = await self.session.send(
File «C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramsessionsession.py», line 425, in send
return await self._send(data, timeout=timeout)
File «C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramsessionsession.py», line 395, in _send
RPCError.raise_it(result, type(data))
File «C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramerrorsrpc_error.py», line 78, in raise_it
raise getattr(
pyrogram.errors.exceptions.bad_request_400.ChannelPrivate: [400 CHANNEL_PRIVATE]: The channel/supergroup is not accessible (caused by «channels.GetMessages»)

[400 CHANNEL_PRIVATE]: The channel/supergroup is not accessible (caused by "channels.GetMessages")
Traceback (most recent call last):
  File "C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramdispatcher.py", line 191, in handler_worker
    await parser(update, users, chats)
  File "C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramdispatcher.py", line 83, in message_parser
    return await pyrogram.types.Message._parse(
  File "C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramtypesmessages_and_mediamessage.py", line 720, in _parse
    parsed_message.reply_to_message = await client.get_messages(
  File "C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogrammethodsmessagesget_messages.py", line 114, in get_messages
    r = await self.send(rpc, sleep_threshold=-1)
  File "C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogrammethodsadvancedsend.py", line 77, in send
    r = await self.session.send(
  File "C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramsessionsession.py", line 425, in send
    return await self._send(data, timeout=timeout)
  File "C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramsessionsession.py", line 395, in _send
    RPCError.raise_it(result, type(data))
  File "C:UsersGhostigAppDataLocalProgramsPythonPython38libsite-packagespyrogramerrorsrpc_error.py", line 78, in raise_it
    raise getattr(
pyrogram.errors.exceptions.bad_request_400.ChannelPrivate: [400 CHANNEL_PRIVATE]: The channel/supergroup is not accessible (caused by "channels.GetMessages")

I’m trying to make my python script send messages to my private channel but I get this error.

telethon.errors.rpcerrorlist.ChatWriteForbiddenError: You can’t write in this chat (caused by SendMessageRequest)

I’m only admin in that channel and here is code what I use for sending messages, when I try to send message to myself it works fine..

from telethon import TelegramClient
from telethon.errors import SessionPasswordNeededError

api_id = 'my api id'
api_hash = 'my api hash'
phone = 'my number'
username = 'my username'

# Create the client and connect
client = TelegramClient(username, api_id, api_hash)
client.start()
print("Client Created")
# Ensure you're authorized
if not client.is_user_authorized():
    client.send_code_request(phone)
    try:
        client.sign_in(phone, input('Enter the code: '))
    except SessionPasswordNeededError:
        client.sign_in(password=input('Password: '))

async def send_mess(message):
    await client.send_message(entity='my channel name', message=message)

while True:
    
    some other code

    if last_message != new_message:
        with client:
            client.loop.run_until_complete(send_mess(message=new_message))
        last_message = new_message

Do I need to change something to have admin rights on my script or where is the problem? I’ll be glad for every answer. Gimme some good sample code guys :D this is really big problem for me now.

asked Jan 5, 2021 at 23:54

Kurina11's user avatar

1

At first test that you can send message to another channel or user. if you can’t you must share all the code.

then make sure that account you are using at this case is admin in the channel. it’s impossible you getting this error if the account is admin.
also check admin rights and make sure post message is enable.

enter image description here

between, use channel username or channel numeric id instead ‘my channel name’. channel numeric id starts with -100 like -1001212229355. you better to use numeric id. to find this just forward one of your channel messages to https://t.me/userinfobot.

await client.send_message(entity='my channel name', message=message)

answered Jan 6, 2021 at 0:15

Purya's user avatar

PuryaPurya

1137 bronze badges

В официальном клиенте Telegram для Android и iOS есть ограничение, из-за которого каналы и боты с определённой тематикой недоступны для просмотра. В случае с Android это касается преимущественно нарушений, связанных с нарушением авторских прав — мессенджер отображает сообщение «Этот бот/канал недоступен в связи с нарушением авторских прав» («This bot is unavailable due to copyright infringement»), а вместо сообщений указывается «This message couldn’t be displayed on your device due to copyright infringement». На iPhone и iPad бывает и другое сообщение: «Этот канал недоступен, так как использовался для распространения …».

Эти ограничения связаны с правилами Google Play и App Store — магазины приложений не допускают приложения, через которые распространяется пиратский контент и другие запрещенные материалы. Но у Telegram есть официальные лазейки, воспользоваться которыми крайне просто.

Как обойти ограничения Telegram на Android

Telegram: «Этот канал недоступен». Как обойти ограничение на iOS и Android

В случае с Андроид обход ограничений крайне прост — необходимо скачать версию Telegram, распространяемую через официальный сайт, а не Google Play. Для этого перейдите на веб-страницу и нажмите на кнопку «Загрузить Telegram» (именно на неё, а не на ссылку внизу с предложением установить Telegram из Google Play). Дождитесь окончания загрузки установочного APK-файла и откройте его, чтобы установить версию мессенджера с официального сайта.

Эта версия Telegram может работать параллельно с той, что устанавливается через Google Play.

Если на вашем смартфоне выключена установка приложений из неизвестных источников (из интернета), выполните следующие действия: откройте «Настройки» Android, перейдите в раздел «Безопасность» и включите ползунок «Неизвестные источники».

Как получить доступ к заблокированным каналам на iOS

В случае с Айфон и Айпад потребуется либо воспользоваться официальной веб-версией Telegram (его сайтом), либо официальными клиентами мессенджера для Windows и Mac. В первом случае обойтись можно без компьютера — если вы решили воспользоваться им, переходите сразу ко второму пункту в инструкции ниже.

1. Скачайте приложение Telegram Desktop (для Windows и macOS) или Telegram (для macOS) из официального сайта — это обязательное условие, поскольку с версиями из Windows Store и Mac App Store ничего не выйдет. Либо же воспользуйтесь веб-версией мессенджера.

2. Откройте «Настройки» в клиенте Telegram для компьютера или в веб-версии и перейдите в раздел «Конфиденциальность».

Telegram: «Этот канал недоступен». Как обойти ограничение на iOS и Android

3. Переведите ползунок «Выключить ограничения» (Show Sensitive Content) в активное состояние.

4. Перезапустите приложение Telegram на компьютере, а также клиент на iPhone или iPad.

Активированная с помощью вышеописанного метода функция синхронизирует контент между всеми подключёнными к аккаунту Telegram устройствами, поэтому заблокированные ранее каналы будут доступны на Айфон и Айпад.

Однако даже в этой официальной лазейке есть некоторые ограничения:

  • Заблокированные каналы нельзя найти через поиск — они доступны только по прямой ссылке и в каталоге каналов пользователя.
  • Даже на разблокированных с помощью данного способа каналах не отображается аватар.
  • Вышеописанный метод не сработает, если пользователь находится в странах, законы которых запрещают просмотр материалов из заблокированных каналов (к примеру, в Казахстане и Узбекистане).
  • Как получать донаты в Telegram, публикуя платные фото и видео
  • 9 сторонних клиентов Telegram для Android, во всём лучше оригинального
  • Telegram и Signal — не самые защищённые. Есть мессенджеры понадёжнее, вы ими пользовались

В мессенджере Telegram действуют ограничения, которые распространяются на отдельные блоги. Если контент в каком-то сообществе заблокирован, то пользователи увидят текст «этот канал недоступен в телеграм». Давайте посмотрим, что делать, если канал в телеграмме недоступен.

Для начала разберём, почему канал в телеграмме недоступен. В большинстве случаев Telegram канал недоступен, если он нарушает авторские права. Магазины приложений могут не только просто удерживать доступ ко всякому контенту, который авторы канала украли у кого-то, но и целиком блокировать сообщество, где публикуется содержание пиратского характера или какие-то нелегальные материалы.

Теперь рассмотрим, как зайти в заблокированный канал.

Содержание

  1. Способ 1. Как обойти «этот канал недоступен» в Телеграм на Андроиде.
  2. Способ 2. Как убрать «этот канал недоступен» в Телеграм на Айфон.
  3. Способ 3. Обходим ограничения от государственных структур.

Способ 1. Как обойти «этот канал недоступен» в Телеграм на Андроиде.

Обойти данный запрет и зайти в сообщество на Андроид достаточно просто. Для этого нужно переустановить мессенджер не из магазина приложений, например с Play маркета, а с официального сайта самого мессенджера или на странице нашего сайта:

Как обойти канал в Телеграме который недоступен

  • Заходим на официальную страницу сайта: telegram.org
  • Нажимаем на «Telegram для Android»

Как обойти канал в Телеграме который недоступен

  • Кликаем по кнопке «Загрузить Telegram»

канал недоступен

Важно. Система безопасности вашего телефона может не давать скачивать приложения со сторонних ресурсов. Поэтому для начала вам придётся активировать тумблер «Неизвестные источники» в настройках устройства. Только потом обязательно верните тумблер назад, чтобы по случайности не загрузить на телефон какой-то вредоносный файл.

Способ 2. Как убрать «этот канал недоступен» в Телеграм на Айфон.

А вот на Айфоне обмануть запрет будет несколько сложнее. Но всё же можно. Вот инструкция:

  • Скачиваем десктопную версию телеграм на компьютер с официального сайта или заходим в веб-версию мессенджера.
  • Заходим в настройки, где нам нужен подраздел «Конфиденциальность».
  • Находим «Выключить ограничения» и активируем тумблер.
  • Перезапускаем приложение.

канал недоступен

С помощью такого метода мы можем синхронизировать контент между всеми устройствами, которые подключены к телеграмму. Раз мы разблокировали канал, например, на компьютере, он станет доступным и на Айфоне.

Правда, даже такая лазейка действует с некоторыми ограничениями:

  • вы не сможете найти заблокированный канал в поиске — только через прямую ссылку из каталога или от другого пользователя;
  • на таких каналах не будут отображаться Аватары;
  • метод не работает для стран, в которых каналы запрещены на законодательном уровне.

Такую блокировку можно обмануть только если использовать прокси-сервер. Это такое перенаправляющее соединение телефона с главным сервером Telegram. С этой функцией всякий юзер становится анонимным. Это значит, что программа не сможет отследить, из какого местоположения он пользуется мессенджером.

Чтобы настроить прокси в Telegram:

  • Переходим к Настройкам

канал недоступен

  • Выбираем пункт «Данные и память»

канал недоступен

  • Находим строку «Прокси» и подключаемся к серверу.

канал недоступен

Серверы можно взять у нас на канале в закрепленном сообщении.

Теперь вы можете просматривать заблокированный контент в телеграмме.

https://medium.com/@dennissmink/laravel … 7a9e57bae9

window.Echo.private(`chat.${chatId}`)
            .listen('PushMessageEvent', (data) => {
                console.log('echoPushMessage133', data);

                dispatch({
                    type: MESSAGES_ECHO_PUSH_MESSAGE,
                    data
                });
            })
<?php

namespace AppEvents;

use IlluminateBroadcastingChannel;
use IlluminateBroadcastingPrivateChannel;
use IlluminateContractsBroadcastingShouldBroadcast;

class PushMessageEvent implements ShouldBroadcast
{
    public $chatMessage;
    public $chatId;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($chatMessage, $chatId)
    {
        $this->chatMessage = $chatMessage;
        $this->chatId = $chatId;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return IlluminateBroadcastingChannel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('chat.'.$this->chatId);
    }
}

routeschannels.php

Broadcast::channel('chat.{chatId}', function ($user, $chatId) {

    IlluminateSupportFacadesLog::info('1111');

    return true;

    return ChatMessage::where([
            ['user_id', $user->id],
            ['chat_id', $chatId]
        ])->count() > 0;
});

Если я меняю приват на обычный канал(в js и php), то всё работает, а с приватным получатся ошибка

⚠ [19:39:47] — wVU2a2oSqfPYcBOAAAAG could not be authenticated to private-chat.3
{
    «message»: «The POST method is not supported for this route. Supported methods: GET, HEAD.»,

Client can not be authenticated, got HTTP status 405

А затем сразу идёт

Channel: private-chat.3
Event: AppEventsPushMessageEvent

Но при этом в логах ничего не появляется и в js тоже событие не срабатывает.

Изменено Kirir (30.05.2019 19:53:57)


Связь со мной:
Скайп(с аватаркой) — shyraks
Телеграм — @Mramoris или +7 999 260 13 20

У меня есть проект python с библиотекой Telethon, и я получаю сообщение об ошибке при попытке получить сущность моего канала. Я создаю каналы с помощью wait client(CreateChannelRequest(channel_name, », broadcast=True)), а затем, когда я пытаюсь отправить ему сообщение, я получаю telethon.errors.rpcerrorlist.ChannelPrivateError, что, похоже, означает, что у меня нет прав доступа к каналу; но я знаю, что знаю, так как канал только что был создан в коде.

У меня есть гипотеза, и я не знаю, можно ли его подтвердить. Когда я проводил тесты, я уже создал каналы с тем же именем, но были проблемы с конфигурациями каналов, поэтому я вручную удалил их все, а затем снова запустил код. Думаю, те каналы, которые я удалил, вообще перестали существовать, я не только оставил их, но и удалил, но:

Есть ли способ, которым Telegram пытается подключиться к этим старым каналам, а не к только что созданным? И есть ли способ узнать, так ли это?

Возможно, какой-либо файл конфигурации в моем проекте Python где-то хранит эту информацию?

Понравилась статья? Поделить с друзьями:
  • Channel misconfig stp error detected
  • Channel error on connection rabbitmq
  • Changing dns over https settings как исправить
  • Chameleon human error
  • Chains error isvvc скачать