2014/04/13 - зеркалирование блога
Леонид Каганов: блог — 14.04.2014
В связи с ухудшившимся сетевым климатом внес в движок
дополнения, при помощи которых каждая заметка теперь будет
поститься сразу в несколько аккаунтов в самых разных соцсетях.
Типов аккаунтов у меня в движке пока поддерживается три.
1) Лучше всего работает протокол flat ЖЖ — постинг,
обновление и удаление заметок. Со временем подумаю, как сделать
подкат для больших заметок.
2) API Facebook позволяет разместить заметку (в своем
ущербном формате, с одной фоточкой) и удалить заметку, но почему-то
не дает ее редактировать. Вообще с этим API пришлось дико
повозиться, потому что официальный API на сайте Фейсбука кривой как
смертный грех — это громоздкие файлы, который непойми чем заняты,
да еще сыплют бесконечными ошибками, потому что им не нравится то
версия PHP, то еще что-то. Поэтому от официального API пришлось
отказаться, а соорудить свой. Это работает.
3) Твиттер — работает просто, но не дает ни
редактировать пост, ни удалять его.
Вконтакт и всё остальное пока не освоил, если можете
помочь — пишите. Какие-то гугл-плюсы, вордпрессы, куда еще можно
постить? Еще чисто теоретически мой собственный сайт умеет делать и
автопостинг в ФИДО, и когда-то это вроде работало. Но я пока не
решил, надо ли это, и какую себе отдельную эхоконференцию заводить
;)
В итоге я прописал себе в автопостинги такие
зеркала:
http://facebook.com/lleokaganov/
До этого автопостингом в Facebook занимался какой-то внешний сервис
по RSS-лента, а теперь это делает сам движок. Не удивляйтесь, если
это сообщение придет в Фейсбук дважды — я пока тот сервис не
отключал :)
http://lleo.livejournal.com Это
мой старый ЖЖ-аккаунт, но долгие годы он принадлежал не мне, потому
что я его удалил, а продлить в какой-то момент забыл. И его хранил
некий добрый аноним, а когда я спросил
его, нужен ли он ему, он мне его передал обратно. Поэтому теперь
мой дневник копируется туда.
http://lleo-kaganov.livejournal.com
Но пока аккаунт lleo был утрачен, я успел себе завести
lleo-kaganov, поэтому дублируется дневник будет и туда тоже. Новому
движку пофиг, сколько аккаунтов перечислить, главное, чтоб сам
протокол поддерживался. Обратите внимание: аккаунт lleo-run — не
мой, это автотрансляция, которой я никак не управляю.
http://lj.rossia.org/users/lleokaganov/
Ну раз уж есть поддержка протокола Flat, грех не завести аккаунт на
lj.russia, там тот же протокол. Жаль, аккаунт lleo кем-то занят, но
буду lleokaganov.
https://twitter.com/lleokaganov/
— это твиттер, там только сообщения о новой заметке с ссылкой.
Тех, кто так долго жаловался на мою драконовскую
политику с комментариями, могу заверить: на всех
площадках-зеркалах, не принадлежащих мне, комментарии для любых
заметок открыты. Мне они на почту не приходят и я их не увижу, но
зато вы всегда можете написать там что угодно, пользуясь свободой
слова в той безграничной широте, насколько вам это позволит
администрация местной соцсети.
UPD: Для владельцев движка
[показать спрятанное]
1. В /install надо нажать кнопку, чтобы
создать новую таблицу `socialmedia` — в ней хранится информация о
сделанных постах. Далее заходим из обычной админки в углу экрана в
«редактор переменных» и создаем запись с именем «autopost», она у
меня такая:
lj template.ljpost lleo-kaganov VJQgfhjkm123
lj template.ljpost lleo TOTjlbyVJQgfhjkm123
lj template.ljpost lleokaganov 123NEGJQgfhjkm123
http://lj.rossia.org/interface/flat
twitter template.twitter lleokaganov
3Gc8NvGgHAuZwdBcN5ul3Q y4bIcSaDEMbRx4ALLjX2n2Pd2uzMOAzEDd1BIAVAOA
142408693-xR3RaAQWAJu1wk6iRPrRDfeDUsRXdZ0WPoNEJdTp
80A6K7JeYQmOtVDsRJuYOIdxKeffMHRRnwjnMnfY2neyw
facebook template.facebook lleokaganov
641935263889395 31a2bfcacf8d887b102d6e35ee54ee7b
Это построчно перечислены все соцсети, в которые
будет автоматический постинг. Формат строки — через пробел
перечислены:
[название протокола] — сейчас это:
lj,facebook,twiter
[название темплейта] — любое, главное, чтоб вы создали
такую переменную тоже
[имя аккаунта в этой соцсети] — на фейсбуке это может
быть цифры или имя
И далее перечислены пароли или ключи доступа и прочие
данные, необходимые для коннекта с этой сеткой.
Например протокол LJ требует только пароль и по
умолчанию настроен на ЖЖ. Если вы хотите, например, на lj.russia,
то надо после пароля указать его flat-url:
http://lj.rossia.org/interface/flat
Протокол twitter требует 4 ключа, которые вы
получаете при авторизации на Твиттере. Как эти ключи у Твиттера
выбить, я как-то подробно писал со
скриншотами, с тех пор скриншоты может чуть поменялись, но суть
и названия у ключей прежние.
Протокол Facebook требует два ключа: AppID и
AppSecret. Чтобы выбить их у Фейсбука, требуется поебаться, заведя
там «приложение», этот процесс со скриншотами описан
здесь, у меня получилось, хотя скриншоты опять малость устарели
(вот, блять, неймется кому-то постоянно менять интерфейсы?).
2. Создаем темплейты заметок. Это такие шаблоны, по
которым будет формироваться заметка — вдруг вы к ней захотите
что-то дописать от себя специально для конкретной соцсети или
как-то особо оформить?*
Для всех ЖЖ template.ljpost у меня такой:
{text}
это перепост заметки, оригинал находится на моем сайте:
{url}
Ну, понятно, из него заметка делается — вместо {text}
движок подставляет текст заметки, вместо {url} — адрес оригинальной
заметки на моем сайте.
Темплейт template.twitter совсем лаконичный:
«{Header} {url}». То есть, заголовок поста пробел ссылка, и как
ссылку Твиттер сам оформит.
Темплейт для Фейсбука вообще оказался не нужен, но
возможно движок потребует его создать, и тогда напишите там просто
"{text}«. Очень все сложно у Фейсбука, не до темплейтов.
3. В редакторе заметки теперь под кнопкой «сохранить»
есть еще две кнопки — «Social Media» (запостить заметку) и «List
SM» — показать список запощенных заметок с их адресами и сделать с
ними какие-то операции (например, удалить пост, если протокол
позволяет). Тут, кстати, есть инструмент, которым можно поудалять
сделанные записи. Автопостинг происходит быстро без ухода со
страницы — аяксом они все обращаются параллельно. В будущем я
сделаю, чтобы автопостинг происходил вообще сам при сохранении
заметки (а если заметка уже запощена — то вносил изменения в
существующие). Но пока по кнопке вручную. Про права: автопостинг не
постит закрытые заметки (доступ 'admin'), а ЖЖ при постинге
коректно обрабатывает доступ: открытая — значит, делает открытую,
для друзей — значит, для друзей (хотя как реально различаются
списки друзей на сайте и в ЖЖ — это вопрос).
4. Также есть модуль {_CROSSPOSTED:_}, который можно
вставить в дизайн страницы, и он будет отображать ссылки, куда
сделан автопостинг — как у меня сейчас.
Оригинал заметки находится по адресу http://lleo.me/dnevnik/2014/04/13.html,
там можно оставить комментарии.