Macbook air 13 греется. Mac перегревается? Что делать. Избегайте источников тепла и плохой вентиляции
На данном примере покажу как я настроил автопостинг в Телеграмм из моего блога (платформа blogger), но способы могут быть разные и подходит мой метод для сайта на любой платформе.
Недавно создал навал в телеграмм (подписывайтесь https://t.me/EconDudeBlog )
Ну и для интереса настроил туда автофид (автопостинг).
Один из вариантов как это будет:
Вариант не идеальный, просто способ оповестить людей что вы что-то написали. Примерно как push уведомления. Другой вариант - будет полноценный пост всего материала в телеграмм, но там может быть кривовато.
Очень кратко, какой вообще смысл делать автопостинг в Телеграмм? Сейчас все крупные блогеры (Носик, и т.д.), уже как год сливают аудиторию именно в телеграмм. Сливать аудиторию нужно туда, где все сидят. Сейчас сидят в ВК и вот как раз в Telegram. Следовательно люди не пропустят ваш новый пост если собрать аудиторию именно там. Однако. по хорошему надо писать под каждый пост отдельную статью и вообще кидать туда другой немного контент, но это требует затрат времени.
Технически суть будет вот в чём.
Если у вас есть RSS лента (а её нетрудно подключить), то она просто берёт все ваши статьи и просто их как-бы трансирует. Можно на неё подписаться например по emal.
Я использую старый добрый feedburner от гугла и как минимум он мне ускоряет индексацию новых статей. Так вот, сделайте себе RSS ленту, если еще не сделали.
Нам нужен бот, можно вот такого использовать: https://t.me/Manybot
Вот такое будет меню
Боты в Telegram оказались элементарными штуками, там всё понятно как делать.
Пишем ему /start
Потом /addbot
Вообще-то там снизу есть даже кнопки
Далее всё есть на скрине, продублирую на всякий случай:
- Перейдите к @BotFather . Для этого нажмите на его имя, а потом "Send Message", если это потребуется.
- Создайте нового бота у него. Для этого внутри @BotFather используйте команду "newbot" (сначала вам нужно будет придумать название, оно может быть на русском; потом нужно придумать вашу ссылку, она должна быть на английском и обязательно заканчиваться на "bot", например "NewsBot").
- Скопируйте API токен, который вам выдаст @BotFather
- Возвращайтесь обратно в @Manybot и пришлите скопированный API токен в ответ на это сообщение.
Вам нужен вот этот самый токен вот сюда. Мы создали нового бота. Мой вот такой:
- http://telegram.me/econdude_bot
Выбираем ниже RSS, но как вы видите можно выбрать и ВК, а так-же Твиттер и ютуб
Примечание: в начале 2017 года ВК начал требовать токен пользователя для вызова метода wall.get и многих других. Процесс получения токена для ВК не относится к теме учебника, следовательно, описан не будет. По ссылке https://vk.com/dev/manuals любой желающий сможет найти документацию и описание процесса получения токена.
Для начала — небольшое лирическое отступление.
Когда в Telegram появились каналы , поначалу я к ним относился как к неудачной попытке клонировать Twitter. Сразу появились тупые канальчики с тупыми картиночками, что только усугубляло положение дел. Однако сейчас, спустя больше месяца, моё мнение изменилось на диаметрально противоположное. Призванные заменить списки рассылки (ими вообще кто-то пользовался?), каналы дали возможность получать огромное количество контента, которым можно делиться, который можно сохранять.
В Bot FAQ есть интересная фраза: "Мы будем внимательно смотреть на то, как люди пользуются ботами и развивать их в том направлении". С учетом того, что многие боты занимались именно рассылкой информации, каналы - это очень логичный и правильный шаг в развитии автоматизированных средств.
С точки зрения программиста, каналы решают сразу несколько ключевых проблем:
- Не надо зависеть от серверов Telegram, т.к. нет входящих сообщений.
- Анонимная рассылка сообщений (некоторые люди просили сделать возможность отправлять свои сообщения через "безликого" бота) максимально упростилась.
- Не надо вести списки пользователей, которым нужно отправить информацию и внедрять паузы между отправкой сообщения по очереди всем, эту заботу берёт на себя сам Telegram.
Лично я заметил, что некоторые паблики и группы ВКонтакте стали дублировать свои записи в каналы Telegram. Сегодня мы научимся делать то же самое без помощи каких-либо конструкторов или сторонних веб-сайтов. Чтобы не сильно заморачиваться, будем постить только ссылку на пост, превью к ней и так даст необходимый минимум информации о посте.
Получаем записи
В качестве "подопытного кролика" я выбрал свою маленькую, но очень гордую группу с музыкой C:\Music . Получать новые записи будем при помощи VK API, при этом нам не нужно заморачиваться с созданием приложений, т.к. получить записи со стены можно даже без авторизации ВКонтакте (если в настройках сообщества не указано обратно)
Итак, сформируем ссылку, которая будет нам возвращать последние 10 записей от имени сообщества из группы C:\Music: https://api.vk.com/method/wall.get?domain=c.music&count=10&filter=owner&access_token=token
Что здесь что? domain - короткое имя сообщества. Если его нет, то меняем domain=xxx на owner_id=-yyy (обратите внимание на минус перед числом, это важно). count - число выводимых записей. Чем дольше пауза между проверками и чем чаще в сообществе появляются записи, тем большее число нужно выставить, но не более 100. filter=owner просит сервер выводить записи только от имени группы, полезно, если стена открыта, access_token - это токен пользователя, который «дёргает» API от имени одного из приложений.
Давайте теперь создадим файл bot.py , в котором зададим основные константы и импорты:
Во-первых, не забудьте сделать нужного бота администратором канала, иначе фокус не удастся. Во-вторых, обратите внимание, что в импортах появилась библиотека eventlet , она поможет нам избежать проблем при получении записей из ВК. В-третьих, в указанный txt-файл будем записывать номер верхнего поста на момент проверки, я решил не заморачиваться с созданием key-value хранилищ, ради одного числа-то. В-четвёртых, в качестве параметра BASE_POST_URL указываем ссылку на любой пост из нашей группы без последнего числа.
Иногда ВК начинает дурить и не возвращает список постов за приемлемое время. В этом случае, нам нужно отвалиться по таймауту и пропустить проверку. Можно, конечно, попробовать ещё раз, но мы люди не настойчивые:)
def get_data () : timeout = eventlet.Timeout(10 ) try : feed = requests.get(URL_VK) return feed.json() except eventlet.timeout.Timeout: logging.warning("Got Timeout while retrieving VK JSON data. Cancelling..." ) return None finally : timeout.cancel()Суть простая: получилось - возвращаем объект с постами. Не получилось - возвращаем None. Теперь перейдем непосредственно к парсингу. Алгоритм будет такой:
- Открываем файл, хранящий последний известный номер верхнего поста.
- Если метод get_data() вернул объект с записями, начинаем проходить по нему со второго элемента, т.к. первый - какое-то неизвестное мне рандомное число.
- Если номер поста меньше или равен последнему известному - завершаем обход.
- Проверяем наличие закрепленного поста. Если таковой есть, то передаем функции отправки сообщений все записи, кроме закрепленной. Иначе - просто передаем все.
- У каждой проверяемой записи забираем ID, подставляем рядом с BASE_POST_URL и получаем полный ID записи.
- Отправляем его в канал.
- Как только обход завершился, берем номер первой (второй, если первая - закрепленная) записи и записываем в файл поверх старого значения.
- Засыпаем или завершаемся.
По поводу п.8: дополнительно предусмотрим в нашей программе два режима: в первом режиме скрипт постоянно работает, засыпая после каждой итерации на 4 минуты; во втором режиме скрипт просто завершает работу, что позволяет ставить его в планировщик cron . В определении режима нам поможет константная переменная SINGLE_RUN, которую надо не забыть указать где-нибудь вверху.
def send_new_posts (items, last_id) : for item in items: if item["id" ] <= last_id: break link = "{!s}{!s}" .format(BASE_POST_URL, item["id" ]) bot.send_message(CHANNEL_NAME, link) # Спим секунду, чтобы избежать разного рода ошибок и ограничений (на всякий случай!) time.sleep(1 ) return def check_new_posts_vk () : # Пишем текущее время начала logging.info(" Started scanning for new posts" ) with open(FILENAME_VK, "rt" ) as file: last_id = int(file.read()) if last_id is None : logging.error("Could not read from storage. Skipped iteration." ) return logging.info("Last ID (VK) = {!s}" .format(last_id)) try : feed = get_data() # Если ранее случился таймаут, пропускаем итерацию. Если всё нормально - парсим посты. if feed is not None : entries = feed["response" ] try : # Если пост был закреплен, пропускаем его tmp = entries["is_pinned" ] # И запускаем отправку сообщений send_new_posts(entries, last_id) except KeyError: send_new_posts(entries, last_id) # Записываем новый last_id в файл. with open(FILENAME_VK, "wt" ) as file: try : tmp = entries["is_pinned" ] # Если первый пост - закрепленный, то сохраняем ID второго file.write(str(entries["id" ])) logging.info("New last_id (VK) is {!s}" .format((entries["id" ]))) except KeyError: file.write(str(entries["id" ])) logging.info("New last_id (VK) is {!s}" .format((entries["id" ]))) except Exception as ex: logging.error("Exception of type {!s} in check_new_post(): {!s}" .format(type(ex).__name__, str(ex))) pass logging.info(" Finished scanning" ) returnОсталось дело за малым - написать логику запуска всего процесса и инициализировать логгер, который будет писать в текстовый файлик обо всех событиях в жизни бота:
if __name__ == "__main__" : # Избавляемся от спама в логах от библиотеки requests logging.getLogger("requests" ).setLevel(logging.CRITICAL) # Настраиваем наш логгер logging.basicConfig(format="[%(asctime)s] %(filename)s:%(lineno)d %(levelname)s - %(message)s" , level=logging.INFO, filename="bot_log.log" , datefmt="%d.%m.%Y %H:%M:%S" ) if not SINGLE_RUN: while True : check_new_posts_vk() # Пауза в 4 минуты перед повторной проверкой logging.info(" Script went to sleep." ) time.sleep(60 * 4 ) else : check_new_posts_vk() logging.info(" Script exited.\n" )Перед запуском бота, создадим вручную файл last_known_id.txt и впишем в него один из последних числовых ID, в моём случае это было чудесное число 1893. После включения бота, в зависимости от значения SINGLE_RUN, он будет либо постоянно работать, проверяя каждые 4 минуты на наличие новых постов, либо завершится после окончания первой проверки. Для себя я выбрал второй вариант, добавив скрипт в cron.
На сегодня всё, теперь вы можете легко и просто настроить автопостинг записей практически из любой группы ВК в свой канал.
Развился с 1 000 подписчиков до 8 000. С тех пор я понял, какие ошибки я допустил на первых этапах продвижения своего канала и как их избежать новичкам. Многие из начинающих авторов в Telegram спрашивают, что я могу посоветовать. Поэтому я решил обновить свою старую статью и сделать советы более актуальными и правильными.
Это обновление статьи от октября 2016 года
Что публиковать?
В Telegram, как и в любой другой социальной сети, в первую очередь, важно то, о чём вы пишите. Стоит учесть один важный момент. Здесь люди не хотят читать репосты, копипасты и другие виды контента, который есть у всех. Подписчики выбирают каналы, где есть авторское мнение, уникальный взгляд на популярную новость или нишевые тематики. Впрочем, тематика может быть популярной, но писать всё-таки стоит о своём.
Длинные посты лучше не публиковать. Даже в обычных социалках редко кто читает дальше заголовка. Лично я стремлюсь писать в «Twitter» формате. Короткий пост с картинкой и ссылкой с указанием источника. Лента моего канала похожа на каталог полезных сервисов и программ. Поэтому я создал список тегов, по которым подписчики легко смогут найти нужную программу. Выглядит это так:
Когда лучше всего публиковать в Telegram
Выбрать правильное время публикации для поста - основная из задач в любой социальной сети. Мне кажется, что для Телеграм это не имеет значения и на это есть несколько причин:
- У ваших подписчиков разный часовой пояс. Хотите опубликовать пост в три часа ночи? Пожалуйста.
- У некоторых подписчиков для вашего канала отключен звук оповещений.
- У подписчиков и так целая тьма каналов.
Из этих трёх пунктов можно сделать один простой вывод. Telegram - это как RSS-лента. Ваш пост прочтут тогда, когда это будет удобно подписчику. Поэтому не стоит публиковать слишком много информации за день. «Простыню» из 10500 постов никто не будет читать. Чего я лично не делаю. И на данный момент думаю над решением проблемы - чтобы лента обновлялась часто, но подписчики не страдали от количества постов.
Большинство русскоязычных пользователей Телеграм - это Москва и Питер. Поэтому если вы хотите выбрать наиболее оптимальное время, то выбирайте московское.
Есть ещё одна хитрость. Посты можно отправлять без оповещения пользователей. Для этого достаточно переключить иконку-«колокольчик» и сообщение отправится в канал без оповещений.
Отложенный постинг
Чтобы ещё меньше в течение дня думать о наполнении контентом канала, воспользуйтесь инструментами для планирования постов. Например, KUKU .
Благодаря планированию постов вы можете заранее определить публикации для своей ленты и в течение дня заниматься любимыми делами.
Как форматировать посты
Сам мессенджер не поддерживает никакого форматирования. Ссылки выглядят как http://ссылки , жирный текст как жирный, и прочее. Здесь на помощь приходят такие боты, как @markdownrobot. При помощи этого бота можно форматировать ваши посты в Markdown разметке.
При хорошем умении обращаться с ботами можно создавать посты с практически любым оформлением. Например, в канале-агрегаторе различных товаров с Aliexpress @aliexpressall к постам добавляют кнопки:
Здесь важно помнить, что не все Telegram клиенты поддерживают подобную разметку. Поэтому некоторые подписчики могут вообще не увидеть сообщения. Кроме этого, к постам можно добавлять голосовалки, лайки, опросы и многое другое.
Как вести статистику канала
Для ведения статистики канала опять же был изобретён полезный бот @ControllerBot . После подключения к вашему каналу вы сможете у него запросить статистику за последний месяц. Бот в ответ вам предоставит текстовые данные и красивый график роста.
Взаимный пиар
Как я писал в самом начале, в Телеграме сложно выйти на свою аудиторию. Поэтому одним из инструментов для нахождения двух «одиноких сердец» будет взаимный пиар. Найдите схожие по тематике каналы, желательно с таким же количеством читателей, как и у вас. После чего смело пишите админам с предложением о взаимном пиаре. Многие с радостью соглашаются.
Как же выглядит такой пиар? Вы в своём канале публикуете пост с рекламой чужого канала. Админ в ответ опубликует вашу рекламу. Стоит помнить, что нельзя переусердствовать с такими постами. Иначе все существующие читатели убегут от спама. Я публикую один рекламный пост в день.
Основные моменты, которые нужно знать:
- ВП - взаимный пиар;
- «Мега» - очень похоже на ВП. В этом случае все каналы, желающие поучаствовать, собираются в общий список, и реклама идёт одновременно во всех;
- Час или другое время в топе - после публикации рекламного поста должен пройти как минимум час перед следующей публикацией;
- 24 часа в ленте - рекламный пост не удаляется из ленты в течение суток. Да, рекламный пост можно будет удалить.
- Просмотры. Некоторые админы оставляют пост до тех пор, пока он не наберёт нужное количество просмотров.
Заранее подготовьте краткое описание канала, картинку и приватную ссылку. При переходе по такой ссылке посетитель автоматически становится подписчиком. Получить ссылку можно в настройках канала > выставьте тип канала на «Private». После чего вы получите приватную ссылку. Не забудьте поменять обратно статус канала на «публичный».
Важно сразу начать отслеживать конверсию от ВП и рекламы для своего канала. Делать это будет сложно из-за недостатка инструментов для сбора и анализа статистики. Но сделать это нужно, и чем раньше, тем лучше. Так вы сразу будете знать, с какими каналами нужно сотрудничать в будущем.
Я для этого использую таблицу в Google Документах:
Каталоги каналов
Каталоги каналов - ещё один отличный способ заявить о себе. Он частично похож на взаимный пиар. Потому что вас, скорее всего, попросят опубликовать рекламу каталога у себя. Кто-то опубликует ваш канал за деньги, а кто-то «за спасибо». В любом случае попасть в каталог гораздо проще, чем договориться о взаимном пиаре. Каталогов в Телеграме тьма-тьмущая и найти их не составляет труда.
Вот, например, список полезных каталогов от @tginfo , с которых стоит начать свой поиск:
- @CatalogTelegram - структуризированный каталог чатов, каналов и ботов.
- tgchans.com - каталог каналов с расширенной статистикой и отслеживанием репостов.
- inten.to - индексация чатов, каналов и ботов в режиме реального времени.
- tlgrm.ru/channels - сайт с каналами, отсортированными по рубрикам.
- tchannels.me - старейший каталог каналов.
- telegram-club.ru - чаты, каналы и боты.
- tlgrm.pro - чаты, каналы и боты.
- storegram.ru - боты и каналы с рейтингом.
- tgcreator.ru - рейтинг каналов и ботов.
- uztelegram.com - каналы Узбекистана.
Если вы хотите раскрутить своего бота, то вам понадобятся каталоги ботов:
- @Obzorchik - боты каждый день, а также сайты с ботами;
Конечно, не забыли про каталоги групп. Например, @groupsguide и combot.org/telegram/top/chats , где собраны самые популярные группы по статистике @comstatbot .
Конечно, если не хочется и нет времени вникать самому, то можно заказать услугу продвижения телеграм на этом сайте , где за небольшой процент сделают всё за вас.
Кроме каталогов, есть и авторские каналы, направленные на публикацию всего, что связано с Телеграмом. При помощи таких каналов тоже можно «достучаться» до своей аудитории. Например, в канале Твой Telegram публикуются новости о мессенджере и советы по его использованию. Поэтому реклама в таком канале будет интересна его подписчикам. Они изначально пришли сюда за поиском интересных каналов и новостей о Telegram.
Главное, учитывайте аудиторию каналов, с которыми планируете сотрудничество.
Покупка подписчиков
Самый затратный, но и самый простой вариант привлечения читателей - это «загнать» их за деньги. В Telegram есть люди, которые с радостью привлекут живых подписчиков к вам в канал за деньги. Обычно это несколько рублей за «голову».
Заказать такой тип продвижения можно у некоторых администраторов каталогов. Начать стоит с @User_Administration , который поможет разнести весть о вас более чем в 30-ти каналах Telegram. При этом радиус охвата будет иметь разностороннюю направленность и затронет большую часть аудитории.
Расскажите о себе в других социальных сетях
Основное место локации моих постов - это мой блог. Потом идут социальные сети и почтовая рассылка. У вас наверняка так же. Поэтому не пренебрегайте вашими читателями в Twitter или на сайте. Расскажите о своём канале у себя в социальных группах и люди к вам потянуться.
Напоследок
Я рассказал лишь об основных хитростях продвижения канала в Telegram. Благодаря им я без труда могу удержать существующую аудиторию своего канала и привлекать новых подписчиков.
Не стоит останавливаться лишь на этих советах. Всегда ищите новые техники привлечения подписчиков. Чтобы оставаться «в теме» маркетинга в Телеграм, да и в других сетях, я подписался на несколько каналов.