Создаём ботов для амино: установка среды разработки и вход в аккаунт

Создаём ботов для амино: установка среды разработки и вход в аккаунт

Darkwater

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

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

Вводим в Play Market - Pydroid 3, скачиваем приложение с синей иконкой, запускаем. Устанавливается Python, ждём. Когда окошко с жёлтой полоской пропадёт, мы получим доступ к белому листу. Это - место для создания кода.

Прежде чем создать первый скрипт, нужно установить библиотеку для отправки HTTP-запросов, в нашем случае будем использовать самую простую - requests. Конечно, сделать это можно и без дополнительных зависимостей, низкоуровневым интерфейсом встроенной библиотеки socket, но ничем кроме слова "извращение" такое не назовёшь, поэтому пойдём нормальным путём.

Но, прежде чем что-либо устанавливать, нужно понять, что такое библиотека.

Библиотека - удобно структурированный сборник программных инструкций, нацеленный на упрощённое выполнение каких-либо действий. Грубо говоря, когда мы вызываем какой-то библиотечный метод, выполняется то, что описано в коде этого метода - там могут быть десятки и сотни строк кода, в то время как мы уместим это в одну строку.

Устанавливаем requests. Вызываем боковую левую панель, ищем там Terminal. Нажимаем. Вводим команду pip install requests. Ждём установки. Когда всё завершится, на экране вы должны увидеть то, что видели до ввода команды. После этого можем выходить обратно и приступать к созданию программы.

Первым действием будет включение библиотеки в скрипт.

На первой строке пишем - import requests. Таким образом, мы можем использовать всё, что предоставляет модуль.

На следующих строках пишем:

content = requests.get("https://google.com").text

print(content)

Мы отправили GET запрос на гугл, как наш браузер, когда мы туда заходим, и получили в качестве ответа HTML шаблон, после записав его в переменную с именем content (имя может быть любым), в конце концов отобразив на экране встроенной функцией print.

Думаю, принцип отправки запросов понятен.

Убираем всё кроме import requests и создаём собственно то, что должно взаимодействовать с серверами амино.

Для начала, создадим переменную url и запишем туда адрес API-интерфейса амино:

url = "https://aminoapps.com/api-p"

Само приложение использует другой url - https://service.narvii.com/api/v1, оно полностью идентично тому, что выше и раньше использовалось во всех скриптах, но из-за активной борьбы КА с ботами туда была внедрена система проверок, сигнатур, много ограничений, благодаря чему использовать его стало сложно. Api-p станет лучшим вариантом. Помимо всего прочего, есть и специфическое api сайта амино (https://aminoapps.com/api), но оно довольно ограничено в возможностях.

Когда вы заходите в аккаунт амино, на сервер отправляется запрос с нужной информацией. Если она соответствует той, что амино хранит на своей стороне, в ответе приходит SID или SessionID. Он устанавливается в постоянных заголовках приложения и служит идентификатором пользователя. Давайте это повторим, но сначала нужно создать подставные заголовки, так как без них амино скажет, что вы отправили какую-то неверный запрос. Создадим переменную для DeviceID:

device = "178C2DD75785E81927F422680B4E3C62D32AAEDF1DD44E5CB9A304DE814C46BEB221002651094581C8"

А после запишем такую конструкцию:

headers = {

"NDCDEVICEID": device

}

Теперь мы используем девайс айди, будто бы являясь настоящим пользователем. Для составления данных запроса нам потребуется библиотека json, а для определения меток времени - time

import json

import time

И создаём то, что амино поймёт. Запятые очень важны.

data ={

"email": "тут ваша почта",

"v": 2,

"secret": "0 тут ваш пароль, ноль в начале не трогаете",

"deviceId": device,

"clientType": 100,

"action": "normal",

"timestamp": int(time.time() * 1000)

}

Перезаписываем переменную

data = json.dumps(data)

Отправляем запрос (f отвечает за форматирование строки и позволяет использовать переменные внутри фигурных скобок):

r = requests.post(f"{url}/g/s/auth/login", headers = headers, data = data)

Переведём полученное в удобный формат:

response = json.loads(r.text)

И, наконец, выведем на экран SID, сначала сохранив его в переменную:

sid = response["sid"]

print(sid)

Запускаем скрипт.

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

headers["NDCAUTH"] = f"sid={sid}"

Сохраним файл, нажав на папку в правом верхнем углу, после нажав на Save, перейдя в Internal Storage, выбрав любую директорию, нажав на неё и написав абсолютно любое имя файла, заканчивающееся на .py

Если есть ошибки или вопросы, пишите в комментариях.

Report Page