Что нового

Отправка СМС онлайн через Post, Get запросы

Andrey145

Новичок
Сообщения
25
Репутация
0
Приветствую всех!
есть сервис sms.ru/ , через него можно отправлять смс на свой номер с помощью API,
вот пример :
Код:
 http://sms.ru/sms/send?api_id=811ea906-7c9a-9a44-e5dd-bfe5b5321933&to=79383407773&text=hello+world

вот сам код:
Код:
Local Const $sAPI_KEY = '811ea906-7c9a-9a44-e5dd-bfe5b5321933'
Local Const $sURL = StringFormat('http://sms.ru/sms/send?api_id=', $sAPI_KEY)
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST", $sURL)
$oHTTP.SetRequestHeader("&to=", "79383407773")
$oHTTP.SetRequestHeader("&text=", "hello+world")
$oHTTP.WaitForResponse
Sleep(5000)
ConsoleWrite(StringFormat('Response: %s ' & @LF, $oHTTP.ResponseText))
;$oHTTP = 0


в чем проблема?почему не работает....
 

Вложения

  • screenshoot_003.jpg
    screenshoot_003.jpg
    110.1 КБ · Просмотры: 33
Сообщения
36
Репутация
-1
Код:
Local Const $sAPI_KEY = '811ea906-7c9a-9a44-e5dd-bfe5b5321933'
Local Const $sURL = "http://sms.ru"
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST", $sURL)
$oHTTP.Send("api_id="& $sAPI_KEY &"to=79383407773&text=hello+world")
$oHTTP.WaitForResponse
$resp=$oHTTP.ResponseText
ConsoleWrite($resp & @LF)
 
Автор
A

Andrey145

Новичок
Сообщения
25
Репутация
0
чето не работает. да и к лучшему нашел более дешевый сервис mainsms.ru. вроде по 15коп.


Документация по HTTP API для разработчика
Код:
Документация по HTTP API для разработчика
Взаимодействие с API осуществляется по протоколу HTTP или HTTPS, параметры передаются методом GET или POST. 
В разделе API личного кабинета добавьте проект который будет использовать API функции. 
Все запросы должны содержать параметр project(имя проекта) и параметр sign(подпись) или apikey(рекомендуется использовать sign). 
Для формирования подписи sign понадобится API key проекта, посмотреть его можно на странице API личного кабинета.

Формирование параметра sign(подпись)
Параметр sign формируется следующим образом:

параметры сортируются по названию, затем их значения суммируются, между значениями ставится символ точка с запятой. В конце добавляется API KEY. 
Пример для запроса с параметрами param2=параметр2&param1=параметр1 
в результате сортировки порядок изменится на param1 param2 
и затем step1 = параметр1 + ';' + параметр2 + ';' + API KEY
к полученной на предыдущем шаге строке применяются функции хеширования sha1, а затем md5. 
Пример sign = md5(sha1(step1))
Пример 
GET http://mainsms.ru/api/mainsms/message/send?project=mainsms&sender=mainsms.ru&message=test&recipients=89121231234&sign=12cb0a07a49b60222158b504bee88f57 
для примера параметр API key = 07349e954831d в таком случае параметр sign будет расчитан так:
Шаг 1: достаем параметры, сортируем их в алфавитном порядке и суммируем в строку через точку с запятой и добавляем в конце API key, в результате получим строку 
step1 = params.sort.join(';') + ';' + apikey 
step1 = "89121231234;mainsms;mainsms.ru;test;07349e954831d"
Шаг 2: Применяем к полученой строке sha1 
step2 = sha1(step1) 
step2 = "7c37d179182749abed460158796511bd28daba2b"
Шаг 3: Применяем к полученой строке md5 
sign = md5(step2) 
sign = "12cb0a07a49b60222158b504bee88f57"

Отправка смс сообщения
http://mainsms.ru/home/mainapi#send_api


мой api key:
Код:
aa50ce0524c93

по инструкции сделал все необходимое но чето все равно не так
вот код:
Код:
;Local Const $sAPI_KEY = 'aa50ce0524c93'

Local Const $sURL = "http://mainsms.ru/api/mainsms/message/send"

$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")

$oHTTP.Open("POST", $sURL)

$oHTTP.Send("project=jfr&sender=Jafaservice&message=test&recipients=89383407773&sign=be034343aeb25b5d472bab1fc0e6823c")

;project=jfr+;+sender=Jafaservice+;+aa50ce0524c93

;$oHTTP.Send("api_id="& $sAPI_KEY &"to=79383407773&text=hello+world")

$oHTTP.WaitForResponse
$resp=$oHTTP.ResponseText
ConsoleWrite($resp & @LF)


Ответ - ошибка :
Код:
{"status":"error","error":1,"message":"project not found"}

пользуюсь - http://www.sha1-online.com/
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Andrey145 [?]
чето не работает
Код:
;#include 'MD.au3'
;#include 'SHA.au3'

$sURL = "http://mainsms.ru/api/mainsms/message/send"
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST", $sURL)
$oHTTP.Send("project=jfr&sender=Jafaservice&message=test&recipients=89383407773&sign=74e0a91252731b70323a0d2b4e65fb8d")

;$sSign = StringFormat('%s;%s;%s;%s;%s', '89383407773', 'Jafaservice', 'jfr', 'test', 'aa50ce0524c93') ; 74e0a91252731b70323a0d2b4e65fb8d
;ConsoleWrite(_MD5(_SHA1($sSign)) & @CRLF)

$oHTTP.WaitForResponse
$sResponse = $oHTTP.ResponseText
ConsoleWrite($sResponse & @LF)
 
M

max1300

Гость
кому интересно посмотрите тут https://www.autoitscript.com/forum/topic/119716-sms-udf/
 
Автор
A

Andrey145

Новичок
Сообщения
25
Репутация
0
fyviffitoffo сказал(а):
Код:
Local Const $sAPI_KEY = '811ea906-7c9a-9a44-e5dd-bfe5b5321933'
Local Const $sURL = "http://sms.ru"
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST", $sURL)
$oHTTP.Send("api_id="& $sAPI_KEY &"to=79383407773&text=hello+world")
$oHTTP.WaitForResponse
$resp=$oHTTP.ResponseText
ConsoleWrite($resp & @LF)

ребят извиняюсь, хочу вернуться к сервису sms.ru после запроса в тех.поддержку все пошло - 10 бесплатных смс в день они дают.(мегафон) , думаю для меня( моего незаконченного проекта пока хватит - повешу только важные события)
скриптик выдает html страничку в ответе.

а должно быть примерно такой ответ:
Код:
100	Сообщение принято к отправке. На следующих строчках вы найдете идентификаторы отправленных сообщений в том же порядке, в котором вы указали номера, на которых совершалась отправка.
200	Неправильный api_id
201	Не хватает средств на лицевом счету
202	Неправильно указан получатель
203	Нет текста сообщения
204	Имя отправителя не согласовано с администрацией
205	Сообщение слишком длинное (превышает 8 СМС)
206	Будет превышен или уже превышен дневной лимит на отправку сообщений
207	На этот номер (или один из номеров) нельзя отправлять сообщения, либо указано более 100 номеров в списке получателей
208	Параметр time указан неправильно
209	Вы добавили этот номер (или один из номеров) в стоп-лист
210	Используется GET, где необходимо использовать POST
211	Метод не найден
212	Текст сообщения необходимо передать в кодировке UTF-8 (вы передали в другой кодировке)
220	Сервис временно недоступен, попробуйте чуть позже.
230	Сообщение не принято к отправке, так как на один номер в день нельзя отправлять более 60 сообщений.
300	Неправильный token (возможно истек срок действия, либо ваш IP изменился)
301	Неправильный пароль, либо пользователь не найден
302	Пользователь авторизован, но аккаунт не подтвержден (пользователь не ввел код, присланный в регистрационной смс)

или screenshoot_005.jpg

на в.случай api key - 414f34ac-77f3-5bd4-fddd-7bfd5bfa9cc9
осталось сейчас 4-5 беспл. запросов. кто в др часовом или сидит ночью не стесняйтесь,тестите.


Добавлено:
Сообщение автоматически объединено:

max1300 сказал(а):
кому интересно посмотрите тут https://www.autoitscript.com/forum/topic/119716-sms-udf/

спасибо , рассмотрю если вариант sms.ru не пойдет.
 

Вложения

  • screenshoot_004.jpg
    screenshoot_004.jpg
    118.5 КБ · Просмотры: 12
  • screenshoot_005.jpg
    screenshoot_005.jpg
    37.3 КБ · Просмотры: 6

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Andrey145,
Код:
;~ HttpSetProxy(1)
ConsoleWrite(BinaryToString(InetRead('http://sms.ru/sms/send?api_id=414f34ac-77f3-5bd4-fddd-7bfd5bfa9cc9&to=79383407773&text=hello+world')) & @LF)
Ответ в консоли:
Код:
100
201451-161890
balance=0
 
Автор
A

Andrey145

Новичок
Сообщения
25
Репутация
0
:laugh: ....
думал уже внедрять IE , но мешало бы по страшному, как бы хочется в скрытом режиме рабочие процессы шли бы, а фронтенд не перебивался ими.
ну если же POST \ GET не вариант будем пробовать так юзать!!
спс!
 
Верх