Во всех мануалах пишут что бота нужно создавать в боте MasterBot, однако у меня он усиленно пишет что «Сейчас создать бота не получится. Попробуйте позже». Удалось создать только в консоли разработчика из https://business.max.ru/self/#/services, для этого нужно подтвердить организацию при помощи ЭЦП ключа. Простым физическим лицам, похоже пока бота не создать.
Документация по разработке бота тут: https://dev.max.ru/docs-api/ , увы не очень удобная. Как делать некоторые вещи я сделать долго путался, а некоторые так и не удалось, пришлось копаться в исходниках их официального клиента API на Python.
Итак, для начала создал класс для работы с мессенджером, который берет на себя всю рутину:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
classTMax{
public$url="";
public$login="";
public$password="";
publicfunction__construct($url,$token){
$this->url=$url;
$this->token=$token;
}
functionReqwest($reqwest,$params,$type="POST"){
if($type=="GET"){
$reqwest=$reqwest."?".http_build_query($params);
};
if($type=="POST"){
$reqwest=$reqwest."?".http_build_query($params);
};
$ch=curl_init($this->url.$reqwest);
$authorization="Authorization:".$this->token;
$this->PutLog("--(R $type) in $reqwest :".json_encode($params));
if(isset($_GET["BotCommand"])){<br>echo"-устанавливаем доступные команды для бота<br/>";<br>$params=[];<br>$params[]=["name"=>"Ку","description"=>"Говорить Ку пацаки.."];<br>$params[]=["name"=>"ЫЫ","description"=>"Говорить ЫЫ пацаки.."];<br>$params[]=["name"=>"help","description"=>"Тыгыдын"];<br>$res=$Max->Reqwest("me",["commands"=>$params],"PATCH");<br>die();<br>}
Причем установить то я команды установил, но в самом боте в мессенджере они так и не отображаются. Почем? Пока не выяснено.
В самом вебхуке прописал отлов событий присоединения к боту, и пользователь что-то написал. В этом случае отвечаем ему:
Задача: получить по известному индексу почтового отделения, его адрес, GPS координаты и другие данные..
Решение: а просто попарсим страницу почты россии: https://www.pochta.ru/offices, где есть возможность ввода индекса, а в ответ на карте отрисовываються отделения. Чуть нырнув в сетевые запросы, получаем вызов:
который используется самим сайтом почты для получения данных. На выходе очень приятный для парсинга выход. В общем всё оформил в виде простого скрипта:
На днях столкнулся вплотную с маразмом Rustore, а именно:
Однажды загруженное приложение apk удалить из магазина уже невозможно. Можно только скрыть
Т.к. приложение скрыто, а не удалено то другой разработчик загрузить это приложение (с этим именем пакета) уже не может.
Как следствие часто возникают ситуации: кто-то скачал apk твоего приложения из любого магазина приложений (например Goole Play), загрузил его в Rustore.. И всё. Ты теперь своё приложение уже никогда не загрузишь сам. Техподдержка отписывается: связывайтесь с тем кто загрузил это приложение первый и пусть передаёт приложение к тебе, написав кучу бумажек. А если связаться не удаётся? Или это вообще злоумышленник-шантажист?
У меня ситуация несколько проще: я когда то загрузил это приложение скачав из Google Play его, т.к. в Rustore его не было — разработчик не выложил. А теперь разработчик и хочет, но не может из-за меня. Вот теперь занимаемся перепиской и бумаготворчеством.. Казалось бы элементарный функционал добавить — на подобии передачи домена. Один код генерирует, другое его вставляет. И всё — передача завершена.