Бот админ группы. Юзер кидает заявку на вступление. Бот её принимает методом approveChatJoinRequest.
После этого пытаюсь ботом написать этому пользователю сообщение методом SendMessage, но получаю сообщение с forbitten от api. Почему? Бот же должен уметь писать первым, если ранее одобрял заявку на вступление
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.
Только сейчас удалось организовать ситуацию для теста. У меня получилось, удалял-останавливал бота (в том числе и из черного списка) - запускал повторно заявку - все проходило как и запланировано.
Ваш пользователь точно до этого с ботом не общался?
Если ранее общался, то и у меня сообщение доходит. Важно, чтобы пользователь до этого в диалог с ботом не вступал.
Создал нового бота, проверил - не пишет. Ошибка как у вас:
Скорее всего удаленные и остановленные боты, все равно имеют право писать первыми.
Возникает вопрос: как тогда устроено у некоторых каналов, где после подтверждения заявки бот пишет пользователю первым?
Возможно это уже сделано на уровне Telegram Core Api?
В ченджлоге бот апи от 7 декабря 2021 написано:
Bots are now allowed to contact users who sent a join request to a chat where the bot is an administrator with the can_invite_users administrator right – even if the user never interacted with the bot before.
То есть реализовать через бот апи можно, но где-то ошибка в логике.
Нашел инфу где была такая же проблема, указано, что решение такое: В канале или группе до бота, которому разрешено подтверждать\отклонять заявки - не должно быть других ботов ранее.
Создал новый канал, добавил бота админом. Запустил бот - подал заявку с аккаунта , который с ботом не общался. Все получилось. Проверил на другом аккаунте. Также все получилось.
К сожалению, мне не помогло.
Для чистоты эксперимента создал новую группу для себя и бота. Назначил его админом. Изменил настройки группы, чтобы были заявки на вступление.
Другим пользователем подаю заявку, бот её одобряет, но на попытку написать этому пользователю в личку всё ещё форбидден ((
Последний раз я на канале тестировал
Попробовал с каналом, работает.
Жаль что не работает с группой, толку тогда от этой функции ((