kokoulin / telegram-stickers

Auto updated telegram stickers
13 stars 0 forks source link

Код не работает :( #1

Open sxiii opened 3 years ago

sxiii commented 3 years ago

Приветствую!

Спасибо за пример кода. Пытаюсь заставить его работать.

Несколько вводных:

Ошибка всегда одна и та же: {"ok":false,"error_code":404,"description":"Not Found"} (в скрипте updater.php ещё ошибка с размером шрифта, но я поправил) - как будто не найдена страница.

Сервер доступен по HTTPS. картинки доступны. При попытке генерации (запуск через php creater.php либо php updater.php либо вход браузером на любой из скриптов) ошибка всегда одинаковая.

Есть ли идеи в чём может быть дело?

Спасибо!

sxiii commented 3 years ago

Так же, неясно, нужно ли редактировать вот этот массив в updater.php:

$stickers = [
    'MyFirstSticker'=>[
        'emoji'=>['😀'],
        'filename'=>'mfs',
    ],
];

Или demo будет и так работать?

sxiii commented 3 years ago

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, - нужно, если я всё правильно понял).

sxiii commented 3 years ago

UPD2: Подправил полный путь к стикерам в updater.php, и теперь вот это:

{"ok":false,"error_code":400,"description":"Bad Request: STICKERSET_INVALID"}

Имя стикерсета проверял 100500 раз. Оно точно верное. Дальше начинает казаться, что у меня "от имени бота" прав нет на редактирование этого стикерсета, ведь он создан не ботом.

Так же я понял, что стикерсет от имени бота вроде как надо создавать файлом creater.php. Однако, там по прежнему 404 Not Found...

sxiii commented 3 years ago

Фух, получилось. Если кому-то это поможет, то знайте: скрипт 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 и смотрите, обновился ли стикер, - у меня обновился. Ура! Ура!

david141 commented 2 years ago

sxiii можно ваш пример файлов?

sxiii commented 2 years ago

К сожалению на сегодня (ну, некоторое время назад) опять что-то сломалось. С момента моей публикации уже неоднократно приходилось чинить. Разбираться что именно сломалось пока не было времени. Если починю - могу рабочий вариант загрузить в отдельную репу и прислать линк.

david141 commented 2 years ago
ОК.СПАСИБО Отправлено из приложения "Почта" для Windows От: Dennis IvanovОтправлено: понедельник, 22 ноября 2021 г. в 12:44Кому: kokoulin/telegram-stickersКопия: Davidsoft; CommentТема: Re: [kokoulin/telegram-stickers] Код не работает :( (#1) К сожалению на сегодня (ну, некоторое время назад) опять что-то сломалось. С момента моей публикации уже неоднократно приходилось чинить. Разбираться что именно сломалось пока не было времени. Если починю - могу рабочий вариант загрузить в отдельную репу и прислать линк.—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.