Open sxiii opened 3 years ago
Так же, неясно, нужно ли редактировать вот этот массив в updater.php:
$stickers = [
'MyFirstSticker'=>[
'emoji'=>['😀'],
'filename'=>'mfs',
],
];
Или demo будет и так работать?
UPD: разобрался, что бота указывать надо так:
public $botKey = "bot1558и..остальные...цифры..айдишника..бота...:ключбота"
В creater.php та же ошибка про not found; однако, в updater.php теперь вот такое:
{"ok":false,"error_code":400,"description":"Bad Request: failed to get HTTP URL content"}
Однако, неясно, как создать стикерпак "от имени" бота? Нужно ли мне поискать command line bot, чтобы "попытаться создать" стикерпак в телеге именно от имени бота, или нормально, что я сам их создаю просто добавляя _by_botName в конец названия стикерпака?
Да и почему "не получается" загрузить HTTP URL? Во-первых, почему HTTP, а не HTTPS? Во-вторых, по прямой ссылке всё доступно, пути и слэши в путях тщательно проверил по 10 раз (в пути к телеграм-АПИ не нужно указывать / в конце, а в адресе сервера mainURL, - нужно, если я всё правильно понял).
UPD2: Подправил полный путь к стикерам в updater.php, и теперь вот это:
{"ok":false,"error_code":400,"description":"Bad Request: STICKERSET_INVALID"}
Имя стикерсета проверял 100500 раз. Оно точно верное. Дальше начинает казаться, что у меня "от имени бота" прав нет на редактирование этого стикерсета, ведь он создан не ботом.
Так же я понял, что стикерсет от имени бота вроде как надо создавать файлом creater.php. Однако, там по прежнему 404 Not Found...
Фух, получилось. Если кому-то это поможет, то знайте: скрипт creator.php поломан. Чтобы всё заработало, нужно вначале вручную сделать один раз HTTPS запрос к API телеграма чтобы "от имени бота" создать стикерпак вот так:
https://api.telegram.org/bot{АЙДИ_БОТА}:{ПРИВАТНЫЙ_КЛЮЧ_БОТА}/createNewStickerSet?name={ИМЯ_СТИКЕРПАКА}_by_{ИМЯБОТА}_bot&user_id={ВАШ_USERID}&title=test&png_sticker=https://{ПОЛНЫЙ_URL_К_ФАЙЛУ/clear.png}&emojis=%F0%9F%98%80
После этого, поисправлять "font", "fontSize" и все filesystem paths в файле updater.php, и прописать созданный вами стикерпак с тем же именем что выше ^ в примере в файл Controller.php, и тогда ВУАЛЯ, updater.php заработает при обращении к нему через PHP и обновит стикерпак от имени бота. Осталось вам его найти (да, он же создан ботом, поэтому идите браузером на компе или самой телегой по адресу https://t.me/addstickers/{ИМЯ_СТИКЕРПАКА}_by_{ИМЯБОТА}_bot и добавляйте их себе. Пробуйте снова updater.php и смотрите, обновился ли стикер, - у меня обновился. Ура! Ура!
sxiii можно ваш пример файлов?
К сожалению на сегодня (ну, некоторое время назад) опять что-то сломалось. С момента моей публикации уже неоднократно приходилось чинить. Разбираться что именно сломалось пока не было времени. Если починю - могу рабочий вариант загрузить в отдельную репу и прислать линк.
Приветствую!
Спасибо за пример кода. Пытаюсь заставить его работать.
Несколько вводных:
В качесте $botKey провобал так же ключ вида "idБота:ключ", тоже не работает.
Ошибка всегда одна и та же:
{"ok":false,"error_code":404,"description":"Not Found"}
(в скрипте updater.php ещё ошибка с размером шрифта, но я поправил) - как будто не найдена страница.Сервер доступен по HTTPS. картинки доступны. При попытке генерации (запуск через php creater.php либо php updater.php либо вход браузером на любой из скриптов) ошибка всегда одинаковая.
Есть ли идеи в чём может быть дело?
Спасибо!