0
Другие записи за это число:
2021/08/30 - Хтонические места городов: Петербург, Уделка
<< предыдущая заметкаследующая заметка >>
30 августа 2021
Сделал автопостинг в telegra.ph

По настоятельному совету друзей и в связи с предстоящим уходом из фейсбука запилил еще одно зеркало дневника — на https://telegra.ph

Это удивительный по нашим временам сервис — любой незалогиненный может там запилить постик любого содержания и рассылать всем на него ссылку. Но я залогиненный.

Телеграф — детище Телеграма. То есть Павла Дурова. Как гласила народная молва, «ВКонтакт развивается по спирали — всё поспирали у Фейсбука». Поразительно, с какой тщательностью Павел Дуров переносит в свои проекты все костыли и грабли, которые десятилетиями выстраивал Фейсбук в попытках перепилить сервис обмена текстовыми заметками в сервис по обмену еще и фотками, ссылками, видосиками, а потом еще и заметками.

Как вы наверно знаете, в Фейсбуке есть три сущности: «Page», «Page+attachment» и «Note». Page — это просто текст, постик. Если при наборе постика ты упомянул ссылку или добавил фотку — постик превращается в Page+attachment — постик с вложением: внизу под текстом рисуется фотка или превью первой из ссылок (ссылка считается аттачментом). Page+attachment ранжируется и показывается Фейсбуком менее охотно, чем Page, поэтому я сперва создавал пост без ссылок, чтобы Фейсбук его создал в категории Page, а затем редактировал текст, добавляя все нужные ссылки, — категорию публикации после ее редактирования Фейсбук уже не в силах изменить, он кривой. Позже вместо одной фотки Фейсбук разрешил прикреплять целый фотоальбом — тогда фотки единой кучей лепятся внизу. Самой интересной опцией была «Note» — она позволяла создавать посты с элементами верстки: делать курсив, подчеркивание, цитату, а главное — перемежать текст многочисленными фотками, обсуждая их по ходу заметки. Почему вообще возникло такое дебильное деление материалов на три категории, почему их нельзя хранить в одной базе публикаций и почему вообще эти внутренние проблемы ебаных программистов должны быть вывалены на уши пользователя и представлены как правило — большой вопрос к криворуким программистам и мальчику-школоте, создавшему Фейсбук. Со временем Фейсбук запретил создавать Note через API, а теперь, я так понимаю, запретил создавать Note вообще. По крайней мере, в моем аккаунте создавать Note стало запрещено.

К чему я это рассказываю? Все уродливые костыли, сложившиеся сами собой при развитии программного кода Фейсбука от говна к мировому говну, были Павлом Дуровым почему-то восприняты как святые правила. Все костыли и глупости он бережно перенес сперва во ВКонтакт, а затем в Телеграм. Телеграм — точно такой же Page или Page+attachment. Вы можете опубликовать в Телеграм туда либо голый текст, либо прикрепить снизу материал — фотку, ссылку, альбом фоток, видосик, музычку или просто файл. Но вот чтобы реализовать функционал Note Павлу Дурову пришлось изобрести отдельную сущность — Telegraph. Как и в Фейсбуке и в VK (там тоже есть отдельные Note), в Телеграфе можно написать заметку с минимальными элементами форматирования а также перемежая фотки текстом.

Список тэгов для форматирования здесь тоже ограничен. Available tags: a, aside, b, blockquote, br, code, em, figcaption, figure, h3, h4, hr, i, iframe, img, li, ol, p, pre, s, strong, u, ul, video. Некоторых из них даже я не знаю, да и знать не желаю.

Заливка текста заметки в Телеграф по АПИ — невообразимая криворукость. Вы должны взять свою верстку заметки в HTML, удалить все неразрешенные тэги, затем прогнать через DOM-преобразование, пришлось ставить на сервер библиотеку apt-get install php-dom Во-первых, это надо чтобы устранить возможные ошибки, незакрытые тэги P и так далее. Во-вторых, чтобы получить структуру DOM и написать свою процедуру, которая будет гулять по ее узлам и потомкам, чтобы перевести DOM в нормальный Array. Что, в свою очередь, нужно, чтобы в конечном итоге перевести Array в JSON. Да, вы не ослышались: Telegraph требует перегнать структуру HTML через DOM в JSON. Иначе его программисты просто не знают, как побороть уязвимости и удалить опасные атрибуты и тэги. Причем, эта трансляция делается невероятно кривым способом в вымышленном формате, который нигде не описан в документации telegraph https://telegra.ph/api — там лишь приведена процедура на JS, которая это бы сделала (я не проверял), будь постящий робот запущен не на сервере, а прямо в браузере с живой страницы контента.

Но даже после этого в Telegraph куча глюков. Например, если вы размещаете в структуре DOM фотку тэгом IMG, то готовьтесь к тому, что она может все равно вывалиться из верстки в подвал под заметкой. Либо — поменяется местами с предыдущим тэгом P, если они на одинаковом уровне в одном children. Чтобы этого избежать, в большинстве случаев достаточно оборачивать каждую фотку в загадочный тэг figure — узнать об этом можно лишь скачав код заметки, созданной вручную в предлагаемом Телеграфом редакторе. И так далее.

Еще из прекрасных глюков: пост на Телеграфе невозможно удалить. Его можно разве что отредактировать, забив содержимое словом «delete». А удалить залитые файлы нельзя вообще никак — например, картинки надо заливать на telegra.ph/upload отдельно, чтобы подставлять в тэг их локальный адрес.

Но я все-таки сделал модуль постинга заметок в движке на PHP. Вы тоже можете пользоваться автопостингом на Бинонике или в собственном движке. Для начала надо создать аккаунт на Телеграфе, открыв браузером ссылку и получив ключ (access-token):

<?php
https
://api.telegra.ph/createAccount?short_name=НАЗВАНИЕ_БЛОГА&author_name=ВАШЕ_ИМЯ

В менюшке желтого шарика на своей странице Биноника в «редакторе переменных» надо отредактировать переменную «autopost», добавив к перечню зеркал новую строку для Телеграфа, где перечислить через пробел название модуля telegraph, имя темплейта своё название блога на Телеграфе и длинный полученный ключ:

telegraph template.telegraph lleo a4e3fd2ffc53df63a8cb01ce2362a633e6a8288e1941714ae4aa4838239c

Темплейт с таким именем создается тоже в редакторе переменных, у меня он простой, я лишь добавляю к тексту строку с подписью:

<?php{text}<p><hr><aside><i>оригинал заметки: <a href='{url}'>{url}</a></i></aside>

Если вы хотите, чтобы в ваш аккаунт Telegram (куда у вас конечно же тоже был настроен постинг) шли не заметки, а быстрее и полнее открывающиеся сущности из Телеграфа, просто добавьте в тексте «autopost» в строке с описанием телеграма и его ключей в конце через пробел лишнюю опцию «telegraph:lleo» (имя вашего блога).

Выглядят посты в Telegraph так: https://telegra.ph/Htonicheskie-mesta-gorodov-Peterburg-Udelka-08-30 Имена в URL Телеграф почему-то берет на себя придумывать сам, ориентируясь на заголовок поста и свои соображения о сегодняшней дате и других постах с тем же заголовком. Повлиять на выбор имени нельзя, а имя твоего зарегистрированного аккаунта в URL никак не фигурирует — из линка не поймешь, кто создал публикацию, мог и любой аноним на сайте.

Конкретно этот пост выглядит так: так

А вот как прикреплять к Телеграму коментарии, пока не разобрался.

UPD: Прикольно: во время автопостинга этой заметки, ошибку внезапно выдал... Twitter! Оказывается, в Твиттере запрещено упоминать Телеграф!

Twitter lleokaganov — Error: We can't complete this request because this link has been identified by Twitter or our partners as being potentially harmful. Visit our Help Center to learn more.
<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок

Комментарии к этой заметке скрываются - они будут видны только вам и мне.

Оставить комментарий