8

Ниже находится статья за 2016 год. В этом 2018 году появилось более простое решение, доступное даже домохозяйке, и не требующее телефона как такового, подробнее в этой статье.

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

Как же можно решить эту проблему? В некоторых странах, например, в США, можно получить виртуальный мобильный номер (я брал у twilio) и через API сервиса принимать и посылать смски. К сожалению, мне не удалось привязать мобильный банк к такому номеру - смски приходят с короткого номера, а в США эти номера заняты кем-то другим или вовосе не используются. Арендовать в России виртуальный номер для приёма смс дороговато, дорога также и услуга смс-хостинга (когда ваша карта отдаётся в компанию, где подключается к их платформе). Посмотрел цены у трёх операторов: цена за подключение 10$ и абонентка 20$ в месяц, у другой конторы -  2000 в месяц, у третьей - подключение 3000р и 2000р в месяц абонентки. Нет, конечно, есть и бесплатные простые способы - публичные номера. Море ресурсов позволяет использовать один или несколько номеров для регистрации в соцсетях и т.п., все приходящие смски видно сразу тут же - на сайте. Регистрировать мобильный банк через такую систему мы не хотели.

Был выбран чуть более сложный путь - поставить на android телефон программу по пересылке смсок на наш сервер, где простенький php файл в одну  строку отправляет сообщение в telegram. Таким образом, телефон можно подключить к зарядке и забыть о нём, раз в 2-3 месяца отправляя с него смс (это позже тоже можно будет автоматизировать) или совершая звонок, чтобы оператор не заблокировал номер. Но обо всём по порядку. Всего будет 3 этапа

  1. Регистрация telegram бота
  2. Написание простенького php файла
  3. Установка и настройка на телефон смс гейта.
  1. Регистрация telegram бота

Для регистрации бона нужно найти пользователя BotFather в списке контактов

И написать ему /newbot , на что он спросит имя, придумать имя на латинице, потом он попросит придумать имя пользователя (будем считать это ник-неймом) с обязательной припиской _bot в конце. Вот весь диалог, красным я выделил самую его важную часть - id бота и token (будем считать его паролем).

Проверим, работает ли бот.  Для этого нажмём в последнем сообщении от BotFather на первую ссылку: telegram.me/smstotelegram_bot. Откроется окно чата с ботом, нужно нажать START. Если  вы находитесь в России, то с 2018 года телеграм заблокирован и для работы над ботом придётся использовать, например, бразуер Opera со включённым VPN режимом. 

После этого нужно отправить боту любой текст. Это нужно для того, чтобы потом определить, кому бот будет отправлять сообщения. Для начала мы рассмотрим простой случай - отправку sms одному пользователю, потом отправку sms в групповой чат. на картинке ниже - скриншот после отправки "привета":

Теперь зайдём в браузер и увидим весь лог этого чата. Для этого сформируем строку:

https://api.telegram.org/bot152314208:AAAAAAAAAAAAAAAAAA/getUpdates

Где AAAAAAAAAAAAAAAAAA нужно заменить на token (пароль), а 152314208 на id вашего бота. Обратите внимание, приписка bot должна быть до id!

Отправьте получившуюся строку в адресную строку и нажмите ввод. Если в ответном сообщении есть только "{"ok":true,"result":[]}", снова напишите боту "Привет" и обновите страницу в браузере. Должен появится лог общения. Примерно такой:

Красным я выделил собственно надпись "привет" в формате json (не будем вдаваться в подробности, но \u043f это "п"). Зелёным выделен id моего аккаунта, т.е. того, под которым я обычно логинюсь. Отправим теперь от бота мне сообщение "и тебе привет". Для этого сформируем запрос:

https://api.telegram.org/bot152314208:AAAAAAAAAAAAAAAAAA/sendMessage?chat_id=70843541&text=и тебе привет

Где AAAAAAAAAAAAAAAAAA нужно заменить на token (пароль), а 152314208 на id вашего бота. 70843541 необходимо заменить на id, который обозначен зелёным - это id чата. Вот, что получится, если вставить сформированный запрос в адресную строку браузера

Это именно то, что нам и было нужно. Переходим ко второму этапу

2.Написание простенького php файла

Программа для андроид телефона, которую мы буем использовать, не умеет, к сожалению, посылать запросы по произвольному адресу (будет разъяснено ниже), поэтому нам нужен скрипт-посредник, который преобразует данные в нужный вид. Итак, достаточно любого php хостинга (у кого нет никакого, попробуйте бесплатный тариф у моего хостера Бегет https://beget.com/ru/free-hosting).

Создайте файл такого вида

<?php
file_get_contents("https://api.telegram.org/bot152314208:AAAAAAAAAAAAAAAAAA/sendMessage?chat_id=70843541&text=".(string)$_GET["phone"].":".$_GET["text"]);
?>

Тёмно-зелёным цветом отмечена строчка, полученная ранее.

(string)$_GET["phone"].":".$_GET["text"]) 

означает взять и преобразовать в строку номер телефона, добавить :  и текст сообщения.

Сохраним этот файл на хостинге, обзовём его test.php

3. Установка и настройка на телефон смс гейта.

В GooglePlay много разных sms гейтов, но воспользуемся вот этим  (upd2018: программа пропала из GooglePlay, но APK есть в архиве сайта apkmonk:

https://www.apkmonk.com/app/eu.apksoft.android.smsgateway/

Он работает, к сожалению, не со всеми телефонами, например, с моим текущим XIAOMI REDMI 3 PRO он не работает, а с LG L90 работает.

Итак, вот, как нужно настроить программу, зайдя после запуска в Settings:

Красным я отметил необязательный пункт, вернее нужно тестировать, я на всякий случай сразу отметил, т.к. мой телефон любит засыпать и отключать все каналы интернет-связи. Далее кликаем на HTTP Settings и прописываем адрес до своего test.php

После правки адреса жмём дважды "назад" и попадаем в главное меню программы, где нажимаем Start.

Вот и всё. Теперь любая пришедшая смска должна мгновенно отобразиться в чате с ботом телеграма. Вид смски будет телефон:текст.

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

По прилёту в Бангкок встал вопрос способа перемещения в дом, который мы заблаговременно забронировали на Airbnb. Я запустил Uber и заказал такси от аэропорта Suvarnabhumi Airport (BKK) до дома. Минут 30 я искал эту машину, созванивался с водителем (благо там же в аэропорту купил местную симку оператора DTAC). Безрезультатно искал. Оказалось, что я сглупил - UBERовские машины не имеют права заезжать на этот уровень. Плюнул (заплатив за омтену 35 бат) и заказал такси на стойке официального жёлтого такси.

Таксист попался не говорящий по английски вооще. Всю дорогу посмеивался над нами по-тайски. Плюс ещё взял 50 бат официальной комиссии, которая полагается тайским таксистам при поездке из аэропорта. Покрутился водитель немного вокруг нужного закутка Бангкока, тыкал пальцем в карту на моём телефоне, что-то приговаривал по-тайски.  В аэропорт дорога платная - на 2 участках надо заплатить 25+50= 75 бат. Итого, доставка из аэропорта составила 75 бат за дорогу, 50 бат официальная такса (даже на чеке прописана) и 400 бат собсно по счётчику, итого 525 бат.

Далее из Бангкока мы улетали в Чанг Май, но уже из аэропорта Don Muang (DMK). Вообще, что в Бангкоке 2 аэропорта было не очевидно. Мы смотрели рейсы на Авиасейлс и там был период, когда всё якобы летало из BKK, но на странице авиакомпаний было написано, что рейсы из DMK, а между ними 50 минут езды (а в пик так и про 2 часа пишут), так что хорошо, что взяли билеты с разницей в день, а то по недосмотру (которому способствовал Авиасейлс), могли и с разницей в 40 минут взять и потерять перелёт.

Так вот, в DMK было решено сразу ехать на UBER, предполагаемая стоимость  была 480 бат, по факту была 470. Всё было шикарно - большая машина, кондишн (котрого не было в официальном такси). Водитель-девушка спросила, хотим ли мы ехать по платному хайвею или нет - я согласился. Наличку платила она, а потом добавила этоу сумму в интерфейсе UBER - очень удобно, дорога была дольше, чем из BKK в город, но цена по факту - ниже, а уровень сервиса несравненно круче.

По прилёту в Chiang Mai Internatioan Airport (CNX) мы тоже взяли UBER, который за 150 бат привёз нас в нужное место. Место долго не могли найти - так плохо на AIRBNB был занесён адрес, водитель давал кругаля - но всё в итоге всё равно вышло вполне доступно по деньгам.

Вообще, можно ездить и на красных машинках и на трёхколёсных тук-туках, но мы с маленькой дочкой и по-тайски не говорим, а тайцы по-английски тоже не особо, поэтмоу UBER - наш выбор. Тем более, что по прилёту в Чанг Май UBER дал 10 поездок со скидкой 30бат - очень здорово было.

Но не все водители хороши. С одной тётенькой было сложно - она нервничала, а точку на карте поставил я условную - мол дальше покажу рукой. Так нет, пока я не поставил точку на карте она ехать отказывалась - даже закрыла рейс, со словами: "Вызывайте меня снова!", пришлось так и делать - но кол (1 из 5) я ей за это поставил.

Цена средней поездки по городу у нас с 53 бата, по курсу на декабрь 2016 это 95 рублей, меньше минимальной цены у Яндекс Такси в Москве.

Одна поездка нам стоила 13,6 бат, т.е. полная цена 43,6 и 30 скидка.

Цена поездок на UBER в Чанг Мае

Смешно было, водителем была тётушка лет под 50. Я поставил две точки - начало и конец поездки. Она прислала смс "перезвоните мне". Я перезвонил и долго объяснял, где я нахожусь и куда мне нужно. Оказалось, что она преподаватель тайского, но зимой заказов не густо, решила побомбить. Но в UBER не понимает и мы - её первый заказ. Когда приехали на место, она долго ждала подтверждения завершения рейса и ещё и сказала, что мы должны заплатить. На что я ей рассказал, что всё оплачено по карте и пр. Забавно.

1

Я сижу на балконе гестхауса, за моей спиной - небольшой балкон, напратив - стройка, слева - дорога. Свежей воздух в городе Чианг Май - редкость, во всяком случае, для меня. У дорог пыльно и пахнет выхлопными газами. Большая часть транспорта - мопеды, очистка газов у них вообще есть ли? 🙂 Хорошо, что в данным момент ушли соседи-американцы. Оба пожылые, оба курят. Молча сидят, уткнувшись в планшеты, и курят. Мне пришлось отсесть в другую часть балкона - за 15 метров, т.к. даже на расстоянии 5м сигаретный дым меня тревожит.

Темнеет в Тайланде ране, в 18ч по местному времени уже горят фонари и многие идут кушать. Готовят тут везде. Дух готовки около 18ч тоже начинает досаждать.  Мало того, что я веган и мясные ароматы мне противны, так ещё и просто начинает перехватывать в горле от мелких капель летающих масел. Нет, вы не подумайте, что я не получаю удовольствия от зимовки, нет. Но свежий воздух пока ещё ищется. 🙂

Загадочная Азия таит непривычное в обыденном. Например, горячая вода есть только в душе, горячей её делает проточный электрический водонагреватель, который помещён на стене над душем, либо вмонтирован в стену, хотя там может быть и комбинированный - накопительно-проточный. А на кухне и в умывальнике нет горячей воды - вообще один кран. Но это в нашем понятии "горячаяя" нужна, а здесь из крана течёт вода комнатной температуры, температура эта постоянна и для всех нужды комфортная. Разве что малыша подмывать прохладно - в душ носим.

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