Где взять api hash Telegram

Telegram тема сей час достаточно актуальна , порыскав в закромах форума, я не нашел подобной работы или синоним подобного. Поэтому твое счастье что посетил эту статью.

Проще говоря это клиент для Telegram, написанный на языке программирования Python.
Данный код пользуется спросом и умудряется продаваться в пабликах посвященным программированию ботов, а также тематике Python.

Клиент — это грубо говоря вы, вы мониторящий свои социальные сети круглосуточно (в нашем случае это Telegram)и в случае чего ведущий переписку с вашими контактами или же отвечающий на сообщения моментально.
Суть данного же клиента — это пересылка сообщений с одного чата/группы в другой(ую).

В чем это может быть полезно?
Приведу пожалуй ситуацию, исключительно для которой и был написан данный клиент.

Есть платные ресурсы и сервисы в Telegram, в моем случае это бот Haraba — который индивидуально доступен по платной подписке только каждому пользователю по отдельности. С помощью данного клиента я смог распространить платный контент в закрытую частную группу с единомышленниками. Требования и методы решения различных задач относящихся подобным вопросам можно решить, немного имея навыков в программировании и понимание в библиотеке telethon. Я же все подробно и поэтапно распиcал для вас ниже- раслабьтесь.

GPT-4 API Python в Telegram/ Пишем Telegram-бота ChatGPT-4 на Питоне

Коммерческое применение? — Да пожалуйста продавайте платный контент или информацию из ботов/групп/чатов пересылая ее в общий канал с вашими клиентами.
Пожалуй начало я положил и пора перейти к практике. Встречайте!
1. Установка библиотеки Telethon.

1) Нажать сочетание клавиш win+R
2) В появившемся окне прописываем: cmd жмем Enter
3) В следующем окне вводим pip install telethon
4) Дожидаемся завершения установки. ​

Создаем файл с любым удобным названием формата » .py » и редактируем любом текстовым редактором поддерживающем подсветку синтаксиса.
2. Код скрипта.
Копируем код ниже и редактируем следуя теме:

Самое первое и важное в коде после импорта библиотек вы должны заметить api_id и api_hash, а так-же id каналов в коде выше они вымышлены. Заменить на своё!

1611961966918.png

Важно! api_id и api_hash это данные вашего аккаунта, они не должны попасть к третьим лицам, иначе вы потеряете аккаунт.
3. Получение / Регистрация API Telegram.
Где взять api_id и api_hash?: на оф.сайте > https://my.telegram.org/
На приложение придет код который вы должны ввести далее.

1611962067723.png


На следующей странице:

1611962686468.png

1611962992964.png

Пишем Telegram бота, который говорит с ChatGPT API

Напомню еще раз:
api_id и api_hash это данные вашего аккаунта, они не должны попасть к третьим лицам, иначе вы потеряете аккаунт.
Полученные api_id и hash заменяем в коде на свои.
Важно: api_hash в коде обязательно должен быть за кавычками, ‘одинарными’ или «двойными» — разницы нет.
Далее ID каналов.
id своего канала и id канала откуда будем брать посты:

my_channel_id = -1001345345836 #id нашего канала
channels = [-10012345353430, -100327473252340] #id каналов или бота/чата, откуда будем брать материал.

1611963590850.png

Но что если нам нужно только фото, и мы хотим своё описание к фото?
заменяем эту часть кода на следующий:
if event.message.photo:
await client.send_file(my_channel_id, file=event.message, caption=»тут ваш текст»)
Скрин работы:

1611963676379.png

Здесь всё просто рассмотрим аргумент event.message ​

Если хотите поменять текст у альбома:
message=event.original_update.message.message
Редактируем следующим образом:
message=’Ваш текст для альбома’
Можно сказать на этом всё!
Сохраняем скрипт и запускаем, наслаждаемся.

6.Запуск скрипта.Важно! ​

Если вы впервые регаете api телеграма, запустите скрипт
у вас спросит номер телефона от аккаунта, введите его и затем код отправленный вам в приложение, эта процедура делается всего один раз.
Здесь же создается еще один файл в данном случае myGrab.session
название файла берется из:
client = TelegramClient(‘myGrab’, api_id, api_hash)
этот файл всегда должен находится в одной директории со скриптом.
И, как только появится «GRAB — Started» — Закройте скрипт и запустите его только через пару часов. Иначе ваш аккаунт может отлететь в бан.
После этого запускайте и держите скрипт рабочим хоть 24/7
На этом всё, код самый элементарный, его можно сделать еще более функциональным.. но для этого мне нужна поддержка, спасибо. Надеюсь оценишь мои старания)

Еще по теме:  Сообщение в Телеграмме с сердечками

Источник: corclub.digital

Вступление

Заикнулся в присутствии нового коллеги о своем блоге, первый его вопрос был “что за блог?”, а второй “а телеграм канал у тебя есть?”. Поймал себя на мысли неужели я стал ретроградом. Когда начался хайп вокруг влогов и Youtube каналов я остался верен теплому ламповому формату текстовых статей, так и сейчас, считаю что нет необходимости иметь свой Telegram канал, но задача меня заинтересовала.

Вокруг Telegram ботов сейчас много шумихи, как завести своего бота или канал написано в официальной документации. Не хотелось делать что-то надуманное, только ради “попробовать” и я решил что более менее полезной задачей будет уведомление о новых статьях в этом же блоге и только потом понял, что в принципе, мою реализацию можно использовать для любой RSS ленты c небольшими правками под себя.

Обзор

  • Вступление
  • Наивная реализация или тупой бот
  • Используем простую БД или чуть более умный бот
  • Прикручиваем РСУБД или умеренно сообразительный бот
  • Заключение

Наивная реализация или тупой бот

Первое что нужно сделать это создать бота и получить API токен.

Недолго думая, я взял самую популярную либу-обертку для ботов Telegram — gem telegram-bot-ruby и наваял следующий код:

Что же тут происходит? Все очень просто, вот здесь:

require ‘rss’ require ‘telegram/bot’

подключаем библиотеки для работы с RSS и Telegram, а вот здесь:

token = ENV[‘TELEGRAM_BOT_API_KEY’]

Здесь я использую переменные окружения (Environment variables), чтобы это работало, перед запуском скрипта нужно выполнить в командной строке export TELEGRAM_BOT_API_KEY=123456789 , где вместо 123456789 нужно вставить собственно токен. Использование переменных окружения один из двенадцати факторов приложения согласно — Adam Wiggins

Затем, с помощью строчки:

rss = RSS::Parser.parse(‘https://doam.ru/feed.xml’, false)

сохраняем в объект rss всю RSS ленту моего блога (я точно знаю что у меня там только 10 записей, поэтому не боюсь никаких переполнений или задержек).

После этого мы создаем бот клиента, обходим каждый item внутри rss и отправляем его ссылку в канал Telegram.

Таким образом, при каждом запуске скрипта в канал будет отправляться 10 сообщений с одинаковыми ссылками. Я использую бота, хотя для такого же функционала, например, в Slack я бы использовал Incoming Hooks.

Кстати, чтобы бот мог слать сообщения в канал, его нужно добавить в администраторы этого канала.

На этом этапе я понял что нужно хранить состояние постов, т.е. запоминать информацию какие записи уже отправлены в канал, а какие еще нет.

Используем простую БД или чуть более умный бот

На самом деле новая версия бота растянулась на 55 строк кода, и вот он целиком:

Опять же приведу разбор этого кода по кусочкам далее по тексту.

require ‘telegram/bot’ require ‘rss’ require ‘sdbm’ require ‘json’ require ‘logger’

Я использую теже две библиотеки что и раньше rss и telegram , затем подключаю sdbm это встроенная либа Ruby, которая предоставляет простое хранилище типа ключ-значение (key-value), в качестве ключей или значений могут выступать только строки. Далее я подключаю json , чтобы легко кодировать объекты в строки и декодировать обратно. И еще одной библиотекой является logger , который предоставляет простой способ для отладки.

logger = Logger.new(STDOUT) if ENV[‘TELEGRAM_BOT_API_KEY’].nil? logger.fatal «Environment variable TELEGRAM_BOT_API_KEY not set!» exit 1 else token = ENV[‘TELEGRAM_BOT_API_KEY’] end rss = RSS::Parser.parse(‘https://doam.ru/feed.xml’, false)

Сперва делаем простые вещи, создаем объект для логирования и сетим переменную окружения.

Устанавливаем переменную окружения в этот раз мы чуть сложнее. Вначале мы проверяем что ENV пустая и если это так то выбрасываем ошибку через логгер и выходим из программы c использованием exit кода 1, в обратном случае, если переменная не пустая, записываем её значение в переменную, которую мы будем использовать в дальнейшем.

Парсинг RSS ленты происходит таким же образом как и ранее.

SDBM.open ‘doam_posts.db’ do |posts|

Далее, этой строчкой мы открываем нашу базу данных, которая является просто файлами в нашей файловой системе, в случае если базы не существует она будет создана с нуля.

rss.items.each do |item| key = item.link.href title = item.title.content published = item.published.content # next if posts[key] if posts.has_key?(key) logger.info «Post exist in DB will not rewrite» else posts[key] = JSON.dump( title: title, published: published, sended: 0 ) end end

Еще по теме:  Как убрать ночную тему в Телеграмме

И после этого мы начинаем первый цикл: обходим все полученные rss итемы, записываем ссылки, заголовок и дату публикации соответственно в переменные key, title и published. Проверяем есть ли в нашей базе ключ с таким же значением как наш и если есть просто выводим в лог текст, что не будем ничего перезаписывать (это нужно только на этапе отладки, но вообще не обязательно), в обратном случае, если в базе нет записи с таким ключом мы генерируем json строку и записываем её в базу. В качестве ключа я выбрал URL, так как они обеспечивают уникальность, всегда написаны в одном регистре и латиницей.

Следующим шагом я создаю объект типа Hash и прохожусь по всем записям которые есть в базе. С помощью hash[k] = JSON.parse(v) я делаю парсинг строки значения и создаю вложенные хеши. Затем проверяю значение поля sended , если там 0 то генерирую текст и отправляю его в канал, после чего перезаписываю объект cо значением 1, чтобы не отправить эту же запись при следующем запуске.

На самом деле это не совсем рабочая версия кода, я почему-то не закоммитил тот момент когда довел работу с SDBM до ума. Можете попробовать сами понять что здесь не так.

Теперь уже я решил попробовать задеплоить мой код на Heroku и выполнить его там. С использоавнием раннера задач все получилось, да только вот Heroku не сохраняет файлы между запусками задачи (да и вообще). Так что мое решение с SDBM является быстрым и простым, но может быть использовано только как selfhosted.

Прикручиваем РСУБД или умеренно сообразительный бот

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

Здесь проделывается точно такая же работа: иницилизируются необходимые компоннеты, синхронизируется rss лента и локальная база данных и отправляются ссылки на записи которые числятся в базе как “неотправленные”. Только в качестве базы используется PostgreSQL и все это обернуто в класс и методы. Метод initialize выполняется при вызове метода new на объекте класса DoamTelegramBot , остальные методы нужно вызывать отдельно. И чтобы выполнить всё правильно, я создал каталог bin в который положил файл с именем doam_bot и содержимым:

В котором я указываю что для выполнения скрипта нужно использовать язык Ruby, подключаю созданный мной класс через файл app.rb , создаю объект telegram и передаю в него урл для парсинга и id канала, вызываю методы sync и send . После чего я заливаю код на Heroku и создаю периодическую задачу, например раз в сутки. И если за сутки появились новые записи то в мой канал придет уведомление, уже без моего содействия в автоматическом режиме.

Заключение

Полностью это маленькое приложение можно посмотреть у меня в gitlab (для этого нужно залогиниться в gitlab.com). Лицензия пока не указана, но она MIT, т.е. можете править и использовать в своих целях. Если будет время я хотел бы прикрутить еще несколько функций, например отправку не только в телеграм но и другие сервисы, а также решить проблему первого запуска, когда база наполняется новыми записями с флагом “не отправлено” но неизвестно точно какие записи уже были отправлены в канал. В любом случае готов рассмотреть ваши Merge Requests.

  • Поблагодарить автора
  • Telegram канал

Источник: doam.ru

[Telegram] Граббер постов из чужих каналов в свой

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

В этой теме мы разберем:

  1. Установка библиотеки Telethon.
  2. Код скрипта.
  3. Получение / Регистрация API Telegram.
  4. Получение id каналов.
  5. Функция граббера.
  6. Запуск скрипта.

Здесь мы не будем создавать бота, а используем для этого обычный аккаунт telegram.
Желательно использовать купленный аккаунт, т.к не следуя советам приведенным в этой теме, ваш личный акк отлетит в бан

1. Установка библиотеки Telethon.

  • Нажать сочетание клавиш win+R
  • В появившемся окне прописываем: cmd жмем Enter
  • В следующем окне вводим pip install telethon
  • Дожидаемся завершения установки.
Еще по теме:  Как найти интересные сайты в Телеграмме

Создаем файл с любым удобным названием формата » .py » и редактируем любом текстовым редактором поддерживающем подсветку синтаксиса.

2. Код скрипта.
Копируем код ниже и редактируем следуя теме

Самое первое и важное в коде после импорта библиотек вы должны заметить api_id и api_hash, а так-же id каналовВ коде выше они вымышленны. заменить на своё!

Важно! api_id и api_hash это данные вашего аккаунта, они не должны попасть к третьим лицам, иначе вы потеряете аккаунт.

3.Получение / Регистрация API Telegram.
Где взять api_id и api_hash?: на оф.сайте > https://my.telegram.org/

На приложение придет код который вы должны ввести далее.

Напомню еще раз:
api_id и api_hash это данные вашего аккаунта, они не должны попасть к третьим лицам, иначе вы потеряете аккаунт.

Полученные api_id и hash заменяем в коде на свои.
Важно: api_hash в коде обязательно должен быть за кавычками, ‘одинарными’ или «двойными» — разницы нет.

Далее ID каналов.
id своего канала и id канала откуда будем брать посты:

my_channel_id = -1001345345836 #id нашего канала channels = [-10012345353430, -100327473252340] #id каналов, откуда будем брать материал.

тоже самое и с переменной «channels» но давайте рассмотрим ее поближе

channels = [-10012345353430, -100327473252340]

как видите здесь указано id двух каналов, т.е. посты будут браться одновременно с двух каналов

Туда-же можно вставлять неограниченное число id каналов через запятую.
если каналы активные, добавляйте не более 8 каналов, т.к из-за флуда в свой канал телеграм выдаст ограничение на отправку сообщений на 480 ± секунд, дальше больше и бан.

На время теста чтобы не создавать два канала для проверки скрипта
можете сделать так:

my_channel_id = ‘me’

в этом случае с нужного канала сообщения будут отправляться к вам в сохраненки.

И следующее то, что нас больше всего интересует, что мы нашим кодом будем пересылать, и как пересылать.

5. Функция граббера.
За это отвечает часть кода:

if event.message: await client.send_message(my_channel_id, event.message)

В этом случае копируется любой пост (фото, видео, аудио, текст) целиком, вместе с описанием и отправляется в ваш канал.
Не пересылается а именно отправляется в канал как полноценный новый пост.
Пример работы

Но что если нам нужно только фото, и мы хотим своё описание к фото?
заменяем эту часть кода на следующий:

if event.message.photo: await client.send_file(my_channel_id, file=event.message, caption=»тут ваш текст»)

Здесь всё просто рассмотрим аргумент event.message

event.message #-берет все посты event.message.media #-только медиа контент исключая текст event.message.photo #-только фото event.message.video #-только видео event.message.audio #-только музыка

заменяем на нужный нам вариант
Если вам нужен только текст, для отправки самого ‘сообщения ‘используйте

await client.send_message(my_channel_id, event.message)

Если медиа контент:

await client.send_file(my_channel_id, file=event.message, caption=»свой текст»)

Если же вам нужно и то и другое просто вставьте еще одну проверку ниже

if event.message.text: await client.send_message(my_channel_id, event.message) if event.message.video: await client.send_file(my_channel_id, file=event.message)

======
Отправка Альбомов (сгруппированных фото)
И так, разобравшись со всем что написано до этого момента, и протестировав скрипт вы наверняка обнаружите что
сгруппированные сообщения разбиваются и отправляются по одному, тут же всё элементарно просто
добавим следующий кусок кода к тому что выше

Должно получиться так:

Если хотите поменять текст у альбома

message=event.original_update.message.message

редактируем следующим образом

message=’Ваш текст для альбома’

Можно сказать на этом всё!
Сохраняем скрипт и запускаем, наслаждаемся.

6.Запуск скрипта.Важно!
Если вы впервые регаете api телеграма, запустите скрипт
у вас спросит номер телефона от аккаунта, введите его и затем код отправленный вам в приложение, эта процедура делается всего один раз.

Здесь же создается еще один файл в данном случае myGrab.session
название файла берется из

client = TelegramClient(‘myGrab’, api_id, api_hash)

этот файл всегда должен находится в одной директории со скриптом

и как только появится «GRAB — Started» — Закройте скрипт и запустите его только через пару часов.
иначе ваш аккаунт может отлететь в бан.
После этого запускайте и держите скрипт рабочим хоть 24/7

На этом всё, код самый элементарный, его можно сделать еще более функциональным.. но здесь этого не будет.

Источник: teletype.in

Рейтинг
( Пока оценок нет )
Загрузка ...