Как узнать что пишет. Как узнать, что написано в вашей кредитной истории и исправить неточности? Что говорят о человеке в интернете

Как узнать что пишет. Как узнать, что написано в вашей кредитной истории и исправить неточности? Что говорят о человеке в интернете

Пишем ему /start и получаем список всех его команд.
Первая и главная - /newbot - отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя - в конце оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.

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

Не забудьте проверить полученный токен с помощью ссылки api.telegram.org/bot/getMe , говорят, не всегда работает с первого раза.

2. Программирование

Создавать бота буду на Python3, однако благодаря адекватности этого языка алгоритмы легко переносятся на любой другой.

Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)

Каркас бота:

URL = "https://api.telegram.org/bot%s/" % BOT_TOKEN MyURL = "https://example.com/hook" api = requests.Session() application = tornado.web.Application([ (r"/", Handler), ]) if __name__ == "__main__": signal.signal(signal.SIGTERM, signal_term_handler) try: set_hook = api.get(URL + "setWebhook?url=%s" % MyURL) if set_hook.status_code != 200: logging.error("Can"t set hook: %s. Quit." % set_hook.text) exit(1) application.listen(8888) tornado.ioloop.IOLoop.current().start() except KeyboardInterrupt: signal_term_handler(signal.SIGTERM, None)
Здесь мы при запуске бота устанавливаем вебхук на наш адрес и отлавливаем сигнал выхода, чтобы вернуть поведение с ручной выгрузкой событий.

Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.

Class Handler(tornado.web.RequestHandler): def post(self): try: logging.debug("Got request: %s" % self.request.body) update = tornado.escape.json_decode(self.request.body) message = update["message"] text = message.get("text") if text: logging.info("MESSAGE\t%s\t%s" % (message["chat"]["id"], text)) if text == "/": command, *arguments = text.split(" ", 1) response = CMD.get(command, not_found)(arguments, message) logging.info("REPLY\t%s\t%s" % (message["chat"]["id"], response)) send_reply(response) except Exception as e: logging.warning(str(e))
Здесь CMD - словарь доступных команд, а send_reply - функция отправки ответа, которая на вход принимает уже сформированный объект Message .

Собственно, её код довольно прост:

Def send_reply(response): if "text" in response: api.post(URL + "sendMessage", data=response)

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

3. Команды

Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:

Def help_message(arguments, message): response = {"chat_id": message["chat"]["id"]} result = ["Hey, %s!" % message["from"].get("first_name"), "\rI can accept only these commands:"] for command in CMD: result.append(command) response["text"] = "\n\t".join(result) return response

Структура message["from"] - это объект типа User , она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message["chat"]["id"] - в случае личного общения там будет User, а в случае чата - id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.

Команда /start без параметров предназначена для вывода информации о боте, а с параметрами - для идентификации. Полезно её использовать для действий, требующих авторизации.

После этого можно добавить какую-нибудь свою команду, например, /base64:

Def base64_decode(arguments, message): response = {"chat_id": message["chat"]["id"]} try: response["text"] = b64decode(" ".join(arguments).encode("utf8")) except: response["text"] = "Can"t decode it" finally: return response

Для пользователей мобильного Telegram, будет полезно сказать @BotFather, какие команды принимает наш бот:
I: /setcommands
BotFather: Choose a bot to change the list of commands.
I: @******_bot
BotFather: OK. Send me a list of commands for your bot. Please use this format:

Command1 - Description
command2 - Another description
I:
whoisyourdaddy - Information about author
base64 - Base64 decode
BotFather: Success! Command list updated. /help

C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.

4. Свобода

Как можно было заметить, Telegram присылает сообщение целиком, а не разбитое, и ограничение на то, что команды начинаются со слеша - только для удобства мобильных пользователей. Благодаря этому можно научить бота немного говорить по-человечески.

UPD: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/) (https://core.telegram.org/bots#privacy-mode)

Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.

Для начала в Handler добавляем обработчик:

If text == "/": ... else: response = CMD[""](message) logging.info("REPLY\t%s\t%s" % (message["chat"]["id"], response)) send_reply(response)
А потом в список команд добавляем псевдо-речь:

RESPONSES = { "Hello": ["Hi there!", "Hi!", "Welcome!", "Hello, {name}!"], "Hi there": ["Hello!", "Hello, {name}!", "Hi!", "Welcome!"], "Hi!": ["Hi there!", "Hello, {name}!", "Welcome!", "Hello!"], "Welcome": ["Hi there!", "Hi!", "Hello!", "Hello, {name}!",], } def human_response(message): leven = fuzzywuzzy.process.extract(message.get("text", ""), RESPONSES.keys(), limit=1) response = {"chat_id": message["chat"]["id"]} if leven < 75: response["text"] = "I can not understand you" else: response["text"] = random.choice(RESPONSES.get(leven)).format_map({"name": message["from"].get("first_name", "")}) return response
Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map - удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.

5. Не текст.

Боты, как и любой нормальный пользователь Telegram, могут не только писать сообщения, но и делиться картинками, музыкой, стикерами.

Для примера расширим словарь RESPONSES:

RESPONSES["What time is it?"] = ["", "{date} UTC"]
И будем отлавливать текст :

If response["text"] == "": response["sticker"] = "BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC" del response["text"]
Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:

Def send_reply(response): if "sticker" in response: api.post(URL + "sendSticker", data=response) elif "text" in response: api.post(URL + "sendMessage", data=response)
И все, теперь бот будет время от времени присылать стикер вместо времени:

6. Возможности

Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).

Вспоминая , могу сказать, что теперь извращений меньше, а работа прозрачнее.

7. Ограничения

К сожалению, на данный момент существует ограничение на использование webHook - он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс.

К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:

While True: r = requests.get(URL + "?offset=%s" % (last + 1)) if r.status_code == 200: for message in r.json()["result"]: last = int(message["update_id"]) requests.post("http://localhost:8888/", data=json.dumps(message), headers={"Content-type": "application/json", "Accept": "text/plain"}) else: logging.warning("FAIL " + r.text) time.sleep(3)

P.S. По пункту 7 нашел удобное решение - размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.

UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч "method": "sendMessage" (или любой другой метод, используемый ботом).

Теги:

  • telegram
  • введение
  • python3
Добавить метки

Делаем простого бота для публикации новостей в канал и автоматические ответы на вопросы за 6 шагов.

В закладки

Материал подготовлен при поддержке

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

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

Начнем с разработки бота, который сможет автоматически отправлять в Telegram-канал новости компании, опубликованные на сайте или в Facebook.

Шаг 1. Создаём бота в Telegram

Бот в Telegram создается при помощи другого бота под названием BotFather . Отправляем ему команду /newbot, выбираем имя, которое будет отображаться в списке контактов, и адрес. Например, «Бот для DTF» с адресом «dtf_news_bot».

Если адрес не занят, а имя введено правильно, BotFather пришлет в ответ сообщение с токеном - «ключом» для доступа к созданному боту. Его нужно сохранить и никому не показывать.

Через BotFather также можно добавить аватарку для бота, описание и прочее.

Шаг 2. Создаём канал в Telegram

Теперь создаём канал с любым названием и адресом, и переходим в его настройки. Всё, что требуется - добавить в список администраторов созданного нами бота - именно он будет публиковать заметки в канал.

Для поиска бота можно использовать его адрес. Например, «dtf_news_bot».

Шаг 3. Создание условия

Следующий этап - научить бота отправлять новости с сайта в созданный канал. Для этого воспользуемся популярным сервисом для автоматизации IFTTT .

С его помощью можно создавать инструкции для работы бота. В нашем случае она выглядит так: каждый раз, когда в RSS-ленте сайта появляется новая запись, он должен отправлять сообщение в канал Telegram.

IFTTT расшифровывается как If This Then That

Переходим в раздел IFTTT "My Applets", нажимаем на кнопку "New Applet " и далее на ссылку "This". Находим в списке функций триггер Feed , New feed item и указываем URL-адрес нашей RSS-ленты. Например, у Wordpress-сайтов она обычно расположена по адресу example.com/feed/.

Вместо RSS-ленты можно отслеживать появление новых записей в Twitter или Facebook -аккаунте - для каждой функции в IFTTT предусмотрены отдельные модули.

Теперь переходим ко второму шагу - выбираем действие, которое будет выполняться при обнаружении новой записи в RSS. Нажимаем на "That" и ищем Maker Webhook , "Make a web request" - с помощью этого модуля можно отправлять запросы к любым сервисам. В нашем случае - к боту в Telegram.

В открывшейся форме в поле URL нужно указать ссылку https://api.telegram.org/botТОКЕН /sendMessage, подставив в неё токен, сгенерированный на первом шаге. Метод: POST, тип контента: application/json.

Body - поле для шаблона запроcа, который будет отправляться в Telegram. В нём указываем, в какой канал нужно отправить сообщение и что в нём должно быть написано:

{"chat_id":"@адрес_канала", "text":"{{EntryTitle}} {{FeedUrl}}"}

  • chat_id - адрес канала, в который необходимо отправить сообщение. Таким образом одного бота можно подключить сразу к нескольким каналам. В качестве адресата можно указать и конкретного пользователя. В таком случае вместо адреса канала необходимо указать его ID (можно получить при помощи бота).
  • text - содержание сообщения. Например, заголовок материала из RSS (EntryTitle), его содержание (EntryContent) и ссылка (FeedUrl). Список доступных опций можно посмотреть по кнопке Ingredient.

Если всё настроено верно, бот отправит сообщение из RSS-ленты в канал. У триггера в IFTTT есть задержка, поэтому сообщение, появившееся в RSS-ленте, отправится в Telegram не сразу, а спустя 30-60 минут.

В качестве условия для отправки сообщения можно выбрать любой другой сценарий, доступный на IFTTT. Например, Weather Underground умеет каждый день отправлять сообщение с прогнозом погоды на завтра. Триггер Stocks можно настроить на отправку стоимости акций при закрытии торгов.

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

Шаг 4. Подключаем сервер

На этом этапе понадобится веб-хостинг и сертификат SSL, который можно получить бесплатно с помощью сервиса Let"s Encrypt.

Удобнее всего создать отдельный поддомен для бота - например, bot.example.com - и разместить на нём один файл index.php. Внутри файла размещаем код простейшего бота c сайта Telegram.

В код бота нужно внести всего два изменения:

  • в строке define("BOT_TOKEN", "12345678:replace-me-with-real-token"); вместо 12345678:replace-me-with-real-token написать токен, полученный на первом шаге;
  • в строке define("WEBHOOK_URL", "https://my-site.example.com/secret-path-for-webhooks/"); вместо https://my-site.example.com/secret-path-for-webhooks/ указать URL-адрес файла с кодом для бота: https://bot.example.com/index.php.

Шаг 5. Связываем Telegram-бота и сервер

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

Для этого понадобится консоль. У разных хостинг-провайдеров она может находиться в разных разделах интерфейса управления сайтом. Кроме того, можно воспользоваться программой Terminal на macOS, введя через неё команду ssh имя_пользователя@адрес_домена .

После ввода пароля, печатаем для нашего поддомена простую команду:

php -f /var/www/bot.example.com/index.php

Nice to meet you - ответ бота на отправленное пользователем сообщением.

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

Репутация человека или компании в сети формируется из отзывов и мнений на форумах, блогах и других ресурсах. Отзывы бывают положительные (это когда вас хвалят), нейтральные (когда вас просто упоминают наряду с другими людьми или компаниями) и отрицательные (когда вас ругают).

Если вы дорожите своей репутацией, очень важно отслеживать в первую очередь плохие отзывы и своевременно реагировать на них. Любой плохой отзыв можно (и нужно) нейтрализовать в процессе диалога с оппонентом. Например, если о вас пишут откровенную ложь – в ответ попросите доказательства. Поскольку оппонент не сможет их предоставить, все поймут, что его слова – пустой звук. Если же пишут “горькую правду” – не бойтесь открыто признать свою вину, напишите, что вы сделали, что б не допускать таких ошибок в будущем. Это покажет вашу адекватость и повысит уважение к вашей компании/блогу в целом и к вашей персоне в частности.

Как отслеживать появление новых отзывов?

Как только в индекс Google попадает новая страница, где упоминается название моего блога или мое имя, мне тут же приходит уведомление на почту.

Google индексирует страницы довольно интенсивно – большинство уведомлений приходят в течении нескольких часов после появления отзыва. Регулярность рассылки тоже настраивается – можно запросить уведомления раз в день или раз в неделю. Таким же образом можно отслеживать отзывы о своих друзьях или конкурентах, или просто новую информацию по интересующим вас темам.

До чего техника дошла.

Если человек посмотрит на фото, где женщина с книгой в руках рядом с собакой наблюдает за НЛО из окна, то он скорее всего определит возраст и настроение дамы, породу животного, что написано в книге и каким шрифтом.

В 2016 году то же самое может сделать компьютер! И в отличие от человека, еще определит место съемки и укажет на следы «наклейки» летающей тарелки.

И все это можно попробовать сделать онлайн, бесплатно и прямо сейчас!

1. Ищем следы фотомонтажа

Идем на 29a.ch/photo-forensics и с помощью кнопки Open File загружаем фотографию.

И начинаем исследовать ее инструментами на правой панели. С помощью лупы пытаемся найти плохо замаскированные следы обработки:

Анализа слоев позволяет обнаружить «заплатки»:

Не поработали ли здесь кистью-клоном:

Подробнее о том, как на фото найти следы монтажа можно узнать в обучающем видео от создателей сервиса:

2. Читаем метаданные

Идем на Jeffry’s Exif Viewer и загружаем картинку (необработанную, сделанную на цифровую камеру или телефон). Через секунду мы знаем на каком устройство и в котором часу она сделана, а также видим место съемки на карте:

3. Узнаем знаменитость на фото

На beface.com можно узнать, что за знаменитость изображена на фотографии. Загружаем файл и ждем чуть меньше минуты:

Нажимаем на кнопку Search Wikipedia . Вскоре появится список лиц, которые похожи на загруженное:

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

4. Определяем шрифт надписи

В специальном разделе myfonts.com можно загрузить картинку с надписью и определить шрифт, которым она сделана. На странице с результатом отображается пять надписей-образцов максимальных похожих шрифтов (с тем же текстом, что и загруженная):

5. Распознаем текст

Newocr.com для тех, кто хочет качественно распознавать текст, но не хочет платить за FineReader. Загружаем скан, ждем некоторое время и радуемся результату:

Готовый текст можно скачать, скопировать в буфер обмена или перевести с помощью Google Translate.

У сервиса много аналогов, но исходя из моего опыта, newocr.com лучше всех справляется с распознаванием русского языка.

Для поиска похожих фотографий можно использовать Google . Но он пока не достаточно совершенен в решении этой задачи:

Хотя весьма неплох!

7. Что изображено на фото?

Clarifai.com умеет определять, что изображено на фотографии. Легко узнает, что на этой картинке взрослый мужчина в очках и с бородой:

Определяет породу собаки:

А вот шелковицу отличать от других плодов пока не научился:

8. Близнецы или нет?

Развлекательный сервис от Microsoft умеет определять разные ли люди на фотографиях или один и тот же человек.

Несмотря на годы и очки узнает Стива Джобса:

И отличает его от Тима Кука:

9. Эмоции человека

А вот совместный проект Microsoft и Оксфордского университета для анализа эмоций человека на фото.

Сервис запросто определил, что с почти 100% вероятностью женщина испытывает страх («fear»):

И знает, как выглядит счастливый человек («happiness»):

10. Определение возраста

О последнем пункте нашего списка писали все кому не лень. Но вдруг кто-то не знает;-) На

Здравствуйте, дорогие читатели блога, и просто случайные посетители. Если ты забрёл сюда случайно, то скорее подпишись на блог, ведь впереди тебя ожидает море полезной информации и просто подарков!

Ну а теперь серьёзно. Вам интересно, что и где о вас пишут? Тогда Гугл нам в помощь! Хочу сегодня рассказать вам о чрезвычайно нужном и полезном сервисе Google Оповещения . Вы ещё с ним не знакомы? Тогда эта статья для вас!

Гугл не перестаёт нас радовать новыми возможностями и помощью в нашей нелёгкой работе. Так в чём же заключаются возможности, и какую помощь мы получим от Гугла, воспользовавшись этим сервисом?

У вас будет возможность отслеживать все интернет ресурсы, на которых упоминали ваш сайт или ваше имя. То есть вы живёте себе, в ус не дуя, а где то склоняют ваше имя, упоминают сайт, а вы ни сном ни духом. Это нельзя пустить на самотёк, и оставить без внимания. Если хотите узнаваемость в интернете, то нужно быть в курсе, в каком контексте упоминается ваше имя.

Пользоваться сервисом просто до неприличия. Создать оповещения (адрес сайта, Имя и Фамилия взятые в кавычки, и так далее), то есть записать те слова, по которым вы хотите увидеть результат. Затем нажимаете на созданное оповещение (название сайта, или ваше имя), и открывается список тех интернет ресурсов, где вас, или ваш сайт когда либо упоминали. Для того, что бы попасть на страницу с упоминанием о вас, достаточно кликнуть по заголовку оповещения.

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

То есть, несколько раз мой блог, а также имя и фамилию упомянули на разных сайтах, и в некоторых комментариях. Мне интересно было прочитать, что обо мне пишут, а вам - интересно?

Тогда воспользуйтесь помощью сервиса. И откройте для себя возможности данного сервиса. Писать больше не буду, идите, тестируйте всё сами, я думаю вы без труда во всём разберётесь.

PS. Я решила принять участие в конкурсе, и публикую баннер этого конкурса. Женщины, переходите по ссылке, и принимайте участие, пока не поздно! Этот конкурс для вас! Призы просто великолепные!

Внимание - Конкурс!

Я участвую в конкурсе «Рецепты хорошего настроения»!

Организатор проекта –