Jakby ktos potrzebowal to na poniższej konfiguracji :
Device name: E3372
Serial number: L8FDW14CXXXXXXXX
Hardware version: CL1E3372SM
Software version: 22.300.09.00.00
Web UI version: 17.100.13.01.03-Mod1.2
działa mi wysyłanie smsów:
#!/bin/sh
# skrypt w pliku send.sh
# używanie: sh send.sh "+48507123456" "test kolejny :) ąśćź"
if [ $# -lt 2 ]
then
echo "Podałeś za mało paramerów ustawiam domyslne"
number="+48507123456"
content="testowy sms do $number"
echo -e "Numer: $number\ntreść: $content"
else
number="$1"
content="$2"
echo -e "Podałeś numer: $number\ntreść: $content"
fi
length=${#content}
# echo $length
cc=`curl -s -X GET http://192.168.1.1/api/webserver/SesTokInfo`
c=`echo "$cc"| grep SessionID=| cut -b 10-147`
t=`echo "$cc"| grep TokInfo| cut -b 10-41`
date=$(date +"%Y-%m-%d %H:%M:%S")
# echo $date
curl -v http://192.168.1.1/api/sms/send-sms \
-H "Cookie: $c" -H "__RequestVerificationToken: $t" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
--data "<?xml version="1.0" encoding="UTF-8"?><request><Index>-1</Index><Phones><Phone>$number</Phone></Phones><Sca></Sca><Content>$content</Content><Length>$length</Length><Reserved>1</Reserved><Date>$date</Date></request>"
i czytanie smsów
#!/bin/sh
RESPONSE=`curl -s -X GET http://192.168.1.1/api/webserver/SesTokInfo`
COOKIE=`echo "$RESPONSE"| grep SessionID=| cut -b 10-147`
TOKEN=`echo "$RESPONSE"| grep TokInfo| cut -b 10-41`
DATA="<request><PageIndex>1</PageIndex><ReadCount>3</ReadCount><BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>"
curl -b $COOKIE -c $COOKIE -H "X-Requested-With: XMLHttpRequest" --data "$DATA" http://192.168.1.1/api/sms/sms-list --header "__RequestVerificationToken: $TOKEN" --header "Content-Type:text/xml"
Wyżej kolega
areq napisał/a:wysyłam w UTF-8 i jest OK, ale nie robię tego curl, tylko python urllb2
czyli ma kod dla pythona do czynności wysyłania. Jest szansa aby się podzielił ze mną?
Czysty python 2 byłby dla mnie teraz cenniejszy do tego celu niż to co poniżej bo to armata na mrówki. Pozdrawiam.
#! /usr/bin/python2
# -*- coding: utf-8 -*-
# wysylanie smsa przez html api huawei poprzez powyżej umieszczone skrypty bash'a
def sms_huawei(numer_kom, tresc_sms):
import os
import subprocess
command=['/usr/bin/sh', '/......path....to..../send.sh']
command.extend([numer_kom])
command.extend([tresc_sms])
# print command
ret_code = subprocess.call(command,
stdout=open(os.devnull, 'w'),
stderr=open(os.devnull, 'w'))
print(ret_code)
sms_huawei('+48numerkom', 'testuje sobie to coś')
W każdym razie działa ... całkiem szybciutko
Netgear R6220
TP-LINK TL-SG1008P
ZyXEL WSM20