Telegram для WP — опять не работает

6 комментариев

telegram for wp плагин

Доброго всем дня! Начала писать эту статью, сидя в поезде МЦК, хотя задумала ее несколько ранее. В определенный момент мне захотелось посмотреть, какие еще способы коммуникации, кроме комментариев, как обычных, так и при помощи социальных сетей, можно предоставить на блоге. Ссылка на почту, на твиттер не считается, это почти стандарт де-факто.

Сначала захотелось опробовать какой-нибудь плагин xmpp-чата типа FrescoChat. С одной стороны все неплохо — если есть любой xmpp-клиент на компьютере или мобилке, можно продолжить общение, даже не находясь на сайте. Но когда я зашла на сайт, увидела фразу «Free 14 day trial», сразу стало грустно. Там есть бесплатный вариант, но отсутствие в нем SSL отбило желание окончательно . Даже если предположить, что на простом блоге без чата никак, что само по себе крайне сомнительное утверждение, то представить себе, что люди со всех ног побегут настраивать себе xmpp-клиенты, если до этого момента ими особо не пользовались, довольно сложно.  Так что решила даже не ставить этот эксперимент.

Но что же есть на данный момент почти у каждого? Как люди проводят время в метро, на совещаниях, на собственных свиданиях? Вот как:

Молодежная вечеринка

Смотрят в телефон. Читают, смотрят видео, играют, не важно. Смартфоны стали неотъемлемой частью нашей жизни. Или мы их ? А на этих самых телефонах установлены разнообразные мессенджеры. Самые популярные на данный момент — это WhatsApp, Viber, Telegram и все, что связано с социальными сетями, типа фейсбука и вконтактика.

Выбор мессенджера

Про то, как сделать, чтобы с блога приходили уведомления в аккаунт WhatsApp, я писала ранее.  Учитывая, что мне пришлось рутануть свой телефон ради тех экспериментов, этот метод не очень-то удобен и даже не всегда работает. Точнее работает до того момента, пока Вы не обновите программу или не перезайдете в нее. При этом обновляется токен авторизации.

Как связать Viber и WordPress, чтобы в первый уходили различные уведомления, я не нашла в принципе, поэтому не будем останавливаться на данном мессенджере, каким бы замечательным он не был.

А вот с Telegram совсем другая история. Для него есть даже специальный плагин Telegram for WP. Он позволяет постить информационные сообщения боту, которого Вы создали и читаете или на канал, который Вы также создали и читаете .

Настройка плагина Telegram for WP

Плагин устанавливается, как и все остальные, его, как обычный плагин, надо активировать, после этого появится пункт меню «TWP Settings». Прежде чем начать его настраивать, необходимо выбрать способ доставки уведомлений. Вы можете получать уведомления единолично или постить сообщения в группу при помощи бота @Notifcaster_Bot. Или же Вам необходимо создать свой канал, в который будет отправляться вся необходимая информация.

Если Вы выбрали вариант с нотификастером, то щелкните по ссылке «TWP Settings» панели управления WordPress и проследуйте по указаниям на открывшейся странице.

  1. Начните чат с указанным ботом
  2. Пошлите ему команду /token
  3. Скопируйте токен, вставьте его в поле, указанное красной стрелкой, и нажмите «Сохранить изменения»

Если Вы хотите получать уведомления в группу, то добавьте бота в Вашу группу, пошлите ему команду /token, он в ответ даст токен, который будет начинаться с «g:».

telegram notificaster

Чтобы проверить работоспособность плагина, можно нажать на кнопку «Send now!». Если ничего не придет, не беспокойтесь: будь все в порядке, этого поста бы не было  .

Одну вкладку перевели, переходим к следующему варианту .

Если нам хочется получать уведомления в свой канал, то нам необходима другая вкладка — «Post to Channel».

Здесь настроек намного больше, они касаются не только вставки необходимых токенов, но и форматирования самого отправляемого сообщения. Так, при помощи выпадающего списка можно задать расположение таких частей сообщения, как название поста (Title), ссылка на него (Full_url или Short_url) и его описание (Excerpt) или полный текст (Content) в разделе «Message Pattern». Можно отрегулировать длину описания, если оно используется в модели сообщения, это делается в разделе «Excerpt Length». Если отправляется фото, то регулируется расположение описания картинки в разделе «Photo Position». Однако, эти вещи имеет смысл настраивать, когда пришло тестовое сообщение в канал .

Итак, предположим, у нас нет канала и его необходимо создать.

Чтобы его создать, из окна Telegram со списком чатов нажмите на кнопку с тремя полосами (она же навикон) в левом верхнем углу для вызова меню. Кликните по пункту «New Channel».

telegram новый канал

В следующем окне задайте его официальное название и описание. Затем нажмите на галку в верхнем правом углу.

telegram создать новый канал

Затем нас спросят, какой канал нам нужен — публичный или приватный, а также url-ссылку на канал. На публичный канал могут подписываться все, на приватный — только те, кого Вы пригласили. Затем вновь нажмите на галку в верхнем правом углу.

telegram публичный или приватный канал

Все, канал создан, Вы теперь его создатель и администратор. Можете начинать туда постить, что хотите, можете задать иконку своему каналу. Но это еще не все, надо создать бота, который бы постил сообщения в канал. Для этого начинаем чат с отцом ботов @BotFather. Посылаем ему команду /newbot, он спросит имя создаваемого бота, Вы ему отвечаете придуманным именем, оно должно заканчиваться на bot, затем, если все прошло хорошо, бот автоматически создаст Вашего нового бота и пришлет Вам его API токен. Теперь созданного бота необходимо добавить в администраторы, иначе он ничего не сможет написать в ленту. Для этого открываем окно с чатом канала, тыкаем по названию канала, откроется примерно такое окно:

telegram администратор канала

Нужно щелкнуть по пункту «Administrators», который на рисунке выше отмечен красной стрелкой. В следующем окне надо топнуть тапнуть по пункту «Add Administrator»

telegram добавить администратора канала

Затем найти созданного бота по имени. Может найтись не сразу . Все, бот добавлен,  потенциально он может писать в канал.

Вооружившись двумя параметрами — именем канала и токеном бота — можно настраивать плагин.

telegram for wp канал

В поле «Bot Token» добавляем API токен нашего бота, в поле «Channel Username» — имя созданного канала, затем нажимаем «Сохранить изменения».

Рядом с полем «Channel Username» есть кнопка «Send now!». Настоятельно рекомендую по ней кликнуть, так как вполне может ничего не работать, как у меня.

Я все настроила, предвкушала победу, кликнула по кнопке и … ничего. Еще раз для уверенности, результат тот же. Ну вот опять ничего не работает! 

Решение проблемы с отправкой сообщений

Чтобы разобраться в проблеме, мне пришлось включить логирование ошибок php. Вообще говоря, есть несколько способов это сделать, я воспользовалась добавлением строк в файл php.ini

Вместо /var/log/w_errors.log задайте свой путь до лог-файла и обязательно дайте права на запись www-data. Все это делается так:

После внесенных изменений необходимо рестартовать веб-сервер.

В указанный файлик начали писаться вот такие вещи:

PHP Warning: file_get_contents(https://api.telegram.org/botBLA_BLA_BLA/sendMessage): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
in /var/www/wp-content/plugins/telegram-for-wp/inc/Notifcaster.class.php

Класс… Ладно, идем в файлик Notifcaster.class.php по указанному в логе пути. После некоторых изысканий выяснилось, что формирование неправильного URL, на что и жаловалась система, происходило в функции make_request. Вот часть кода, которая за это была ответственна в моем случае:

Чуть корректируем код, получаем:

После сохранения файла Notifcaster.class.php тестовое сообщение в Telegram успешно отправилось  .


6 комментариев “Telegram для WP — опять не работает”

  1. При отправке сообщения через форму обратной связи все работает, если не был вложен файл. При отправке письма с вложением, бот в телеграм пишет кучу левых символов. Не сталкивались с подобной проблемой?

    Ответить
    • NoService
      NoService

      Здравствуйте, Alex!
      К сожалению нет, не сталкивалась. А сам файл доходит, или вместо него отправляются данные символы?

      Ответить
  2. Андрей

    Тестовое отправилось, а вот посты не отправляются и не показывают превью. Куда порыть, есть идеи? Спасибо!

    Ответить
    • NoService
      NoService

      Андрей, если Вы включили логирование, как описано в статье, что пишется в лог?

      Ответить
  3. Андрей

    В лог, увы, ничего не пишется.
    «Вылечил» установкой другого плагина: https://wordpress.org/plugins/wptelegram/
    Не сочтите за рекламу :), но он заработал с полпинка.

    Ответить
    • NoService
      NoService

      Отлично, что заработал другой плагин, Telegram для WP действительно проблемный

      Ответить

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

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> <img src="" alt="" class="" width="" height="">

http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ab.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ac.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ag.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ah.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ai.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ak.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/am.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/an.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ao.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/aq.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ar.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/at.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/av.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/aw.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ay.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/az.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/bb.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/bc.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/bd.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/be.gif 
больше...