Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 9 из 9
  1. #1
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±

    smsru_api.inc - отправка SMS с помощью sms.ru API

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

    Авторизация по вызову:

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

    • Функция RequestCall(playerid, telephone[]) добавляет игрока, которого нужно авторизовать.
    • Колбек OnGetTelephone(playerid, telephone[]) вызывается для возвращения номера телефона, на который должен позвонить игрок.
    • Колбек OnAnswerCall(playerid, status_code) вызывается когда произошла ошибка или когда игрок прошел авторизацию.


     Пример использования
    PHP код:
    #include <a_samp>
    #include <smsru_apil>

    main() {}

    public 
    OnPlayerConnect(playerid)
    {
        
    ShowPlayerDialog(playerid1DIALOG_STYLE_INPUT"Ваш номер телефона""Введите ваш тел. номер.\nОн будет необходим для подтверждения некоторых действий""Ок","");
    }

    public 
    OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        if(
    dialogid==1)
        {
            
    RequestCall(playeridinputtext);
        }
    }

    public 
    OnGetTelephone(playeridtelephone[])
    {
        new 
    text[100];
        
    format(textsizeof(text), "Для подтверждения позвоните на номер %s"telephone);
        
    ShowPlayerDialog(playerid2DIALOG_STYLE_MSGBOX"Подтверждение телефона"text"Ок","");
    }

    public 
    OnAnswerCall(playeridstatus_code)
    {
        if(
    status_code==SMSRU_TELEPHONE_CONFIRMEDShowPlayerDialog(playerid2DIALOG_STYLE_MSGBOX"Статус""Подтвердил""Ок","");
        else if(
    status_code==SMSRU_TIMEOUTShowPlayerDialog(playerid2DIALOG_STYLE_MSGBOX"Статус""Время вышло(5 мин)""Ок","");
        else if(
    status_code==SMSRU_WRONG_TELEPHONEShowPlayerDialog(playerid2DIALOG_STYLE_MSGBOX"Статус""Некорректный номер""Ок","");
        else
        {
            new 
    text[50];
            
    format(textsizeof(text), "ошибка номер %i"status_code);
            
    ShowPlayerDialog(playerid2DIALOG_STYLE_MSGBOX"Статус"text"Ок","");
        } 


    Есть правда один недостаток в этой фишке. Если у игрока не будет денег на балансе, то он просто не сможет дозвониться. Но зато она бесплатная, в отличии от отправки смс.

    Отправка СМС:

    СМС отправляется с помощью функции SendSms(playerid, telephone[], message[]).
    Стоимость отправки СМС указана здесь. Можно бесплатно отправлять 5 сообщений в день на свой номер.

    Исходный код на GitHub | Скачать на GitHub

    Разработка прекращена
    Последний раз редактировалось Bib; 20.01.2018 в 22:46.
    **** RolePlay - всё слоооожно

  2. 2 пользователя(ей) сказали cпасибо:
    Elrmrnt-Kritik (18.01.2018) Outsider (19.01.2018)
  3. #2
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±
    Обновил.
    Сделал по-человечески парсинг ответа.
    Оставил на время свой api_id в инклуде, чтобы могли попробовать его не регистрируясь на сайте
    **** RolePlay - всё слоооожно

  4. Пользователь сказал cпасибо:
    Elrmrnt-Kritik (18.01.2018)
  5. #3
    Аватар для pawnoholic
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.01.2018
    Сообщений
    128
    Репутация:
    15 ±
    По-человечески залейте исходники лучше на GitHub, ну или же хотя бы на pastebin.

    Константу api_id лучше макросом сделать, чтобы его можно было в самом GM или FS изменить, без внесения правок в ваш инц.

  6. Пользователь сказал cпасибо:
    Bib (21.01.2018)
  7. #4
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±
    На GitHub залил. Но делать константу макросом не вижу смысла. Если ты вдруг поменяешь api id, то тебе придется менять его в моде и в фильтрскриптах. И другие проблемы, например с format из-за макроса появятся.

    У меня вопрос к модераторам и администрации портала. Название темы теперь никак не поменять? Нужно как в заголовке: "SMS.RU API"
    Последний раз редактировалось Bib; 19.01.2018 в 19:02.
    **** RolePlay - всё слоооожно

  8. #5
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Bib Посмотреть сообщение
    У меня вопрос к модераторам и администрации портала. Название темы теперь никак не поменять? Нужно как в заголовке: "SMS.RU API"
    Посмотрите на названия других тем в разделе - первым везде указывается название файла *.inc, затем опционально краткое описание. Как только определитесь с подходящим под эти критерии названием, буду рад помочь с переименованием.


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


    Цитата Сообщение от Bib Посмотреть сообщение
    И другие проблемы, например с format из-за макроса появятся.
    Например?
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  9. #6
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Посмотрите на названия других тем в разделе - первым везде указывается название файла *.inc, затем опционально краткое описание. Как только определитесь с подходящим под эти критерии названием, буду рад помочь с переименованием.
    Сойдет smsru_api.inc - отправка сообщений игрокам с помощью SMS.RU API?
    Ну и чтобы не обманывать никого заголовком, добавлю сейчас хотя бы функцию SendSms. На остальное времени пока что нет
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Например?
    Всё нормально с format. Это я поспешил сделать странный вывод, толком не разобравшись . В этом коммите хорошо видно ошибку. Я при автозамене с api_id на API_ID забыл про параметры api_id, они тоже заменились. А т.к. имена параметров чувствительны к регистру, то и появлялась ошибка.
    **** RolePlay - всё слоооожно

  10. #7
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    SendSMS отправляет сообщение на любой номер? Внезависимости от оператора пользователя и региона? Или есть ограничение? Если есть, то укажи эти ограничение в теме, пожалуйста.

  11. Пользователь сказал cпасибо:
    Bib (21.01.2018)
  12. #8
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    SendSMS отправляет сообщение на любой номер? Внезависимости от оператора пользователя и региона? Или есть ограничение? Если есть, то укажи эти ограничение в теме, пожалуйста.
    Да, на любой. Все цены для каждой страны указаны здесь. Дорого конечно, но такие ценники вроде везде сейчас для точно доходящих смс. Лучше использовать для редких и важных задач, что-то типа отправки смс "верхушке" сервера о том что сервер дудосят и т.п. Если денег много, можно и коды подтверждения отправлять)
    Если смотреть на тот же адванс, то они отправляют смс по непрямому каналу, судя по этой теме. Раньше это тоже можно было делать на sms.ru и смс стоила всего 4 копейки, но когда операторы начали бороться со спамом - сообщения редко стали доходить и тариф этот убрали.
    Вместо отправки кода подтверждения по смс, лучше слать их сообщением в соц. сеть через ботов, чтобы наверняка и бесплатно(на каком-то сервере это сделали).
    **** RolePlay - всё слоооожно

  13. Пользователь сказал cпасибо:
    Geebrox (20.01.2018)
  14. #9
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Bib Посмотреть сообщение
    Сойдет smsru_api.inc - отправка сообщений игрокам с помощью SMS.RU API?
    Переименовал, но "sms.ru" оставил прописными буквами; не вижу смысла писать название сайта капсом.

    Цитата Сообщение от Bib Посмотреть сообщение
    Всё нормально с format. Это я поспешил сделать странный вывод, толком не разобравшись . В этом коммите хорошо видно ошибку. Я при автозамене с api_id на API_ID забыл про параметры api_id, они тоже заменились. А т.к. имена параметров чувствительны к регистру, то и появлялась ошибка.
    Ок, но для настройки констант всё ещё нужно редактировать инклуд, это вы так и не исправили. Загляните в тему с рекомендациями по написанию кода, там в пункте 19 показано, как можно сделать указание констант из пользовательского кода, перед подключением инклуда.
    Настоятельно рекомендую там же обратить внимание на пункт 13, это относится к функции "SendSms".

    На самом деле в инклуде ещё много недочётов. Если хотите, я могу высказать их, но только когда увижу что вы исправлете те изъяны, на которые я уже указал. Не хотелось бы распинаться почём зря, если вдруг окажется, что вы решили забросить свой код.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  15. Пользователь сказал cпасибо:
    Bib (21.01.2018)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •