Fragster
@Fragster
помогло? отметь решением!

Как запустить бота через телеграм апи?

Автоматизирую действия человека в клиенте телеграма. Задача такая: создать группу со списком контактов, добавить в нее бота и запустить его. Все получилось кроме последних пунктов (ну, еще сделать бота админом, но это невозможно без добавления бота в группу, а это не получается :) )
в качестве библиотеки, предоставляющей API использую https://github.com/zerobias/telegram-mtproto

bot = {user_id: 120593101, access_hash: ''}; // это бот chgk_bot, но и с другими не работает
peerSelf = new telegram.schema.type.InputPeerSelf();
userBot = new telegram.schema.type.InputUser({props: bot});
	return client.callApi('messages.startBot', {bot: userBot, peer: peerSelf, random_id:123456, start_param:'start'});

возвращает "error_code": 400, "error_message": "BOT_INVALID", не важно, пытаюсь ли я запустить бота в имеющемся чате, или для себя

попытка добавить бота в существующий чат также проваливается:
return client.callApi('messages.addChatUser', {chat_id: chat, user_id: userBot, fwd_limit:1});

ошибка "error_message": "USER_ID_INVALID"
  • Вопрос задан
  • 913 просмотров
Решения вопроса 1
goodmind
@goodmind
Дело в том, что у вас access_hash пустой. Попробуйте метод contacts.resolveUsername

const { InputUser, InputPeerSelf } = telegram.schema.type
const peerSelf = new InputPeerSelf()
const user = client.callApi('contacts.resolveUsername', { username: 'chgk_bot' })
const startBot = user.then(({ users, peer }) => {
  const access_hash = users.list[0].access_hash
  const user_id = peer.user_id
  const userBot = new InputUser({ props: { user_id, access_hash } })
  return client.callApi('messages.startBot', {bot: userBot, peer: peerSelf, random_id:123456, start_param:'start'})
})
startBot.then(result => console.log(result))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы