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(playerid, 1, DIALOG_STYLE_INPUT, "Ваш номер телефона", "Введите ваш тел. номер.\nОн будет необходим для подтверждения некоторых действий", "Ок","");
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==1)
{
RequestCall(playerid, inputtext);
}
}
public OnGetTelephone(playerid, telephone[])
{
new text[100];
format(text, sizeof(text), "Для подтверждения позвоните на номер %s", telephone);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Подтверждение телефона", text, "Ок","");
}
public OnAnswerCall(playerid, status_code)
{
if(status_code==SMSRU_TELEPHONE_CONFIRMED) ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Статус", "Подтвердил", "Ок","");
else if(status_code==SMSRU_TIMEOUT) ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Статус", "Время вышло(5 мин)", "Ок","");
else if(status_code==SMSRU_WRONG_TELEPHONE) ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Статус", "Некорректный номер", "Ок","");
else
{
new text[50];
format(text, sizeof(text), "ошибка номер %i", status_code);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Статус", text, "Ок","");
}
}
Есть правда один недостаток в этой фишке. Если у игрока не будет денег на балансе, то он просто не сможет дозвониться. Но зато она бесплатная, в отличии от отправки смс.
Отправка СМС:
СМС отправляется с помощью функции SendSms(playerid, telephone[], message[]).
Стоимость отправки СМС указана здесь. Можно бесплатно отправлять 5 сообщений в день на свой номер.