私は長い間インターネットで、DebianベースのLinuxシステムでHuaweiE3131とHiLinkを使用してコマンドラインでSMSを送信する方法のガイドを探していました。それらのすべてが機能しませんでした。ソフトウェアがアップデートされたようです。
HiLinkは、次のバージョンを表示します。
質問に続いて:E3131を搭載したDebianベースのLinuxシステムでコマンドラインでSMSを送受信する方法は?
3つのステップが必要です:
ステップ1-セッションIDを取得
セッションIDを取得するには、独自のシェルスクリプトで次のコマンドを使用します。
#!/bin/bash
curl -b session.txt -c session.txt http://192.168.8.1/html/index.html > /dev/null 2>&1
ステップ2-トークンを取得
トークンを取得するには、独自のシェルスクリプトで次のコマンドを使用します。
#!/bin/bash
TOKEN=$(curl -s -b session.txt -c session.txt http://192.168.8.1/html/smsinbox.html)
TOKEN=$(echo $TOKEN | cut -d'"' -f 10)
echo $TOKEN > token.txt
ステップ3パートA-SMSの送信
最後に、SMSを送信するための3番目のシェルスクリプト。これは、他の2つのスクリプトも呼び出します。
#!/bin/bash
NUMBER=$1
MESSAGE=$2
./session.sh
./token.sh
LENGTH=${#MESSAGE}
TIME=$(date +"%Y-%m-%d %T")
TOKEN=$(<token.txt)
SMS="<request><Index>-1</Index><Phones><Phone>$NUMBER</Phone></Phones><Sca/><Content>$MESSAGE</Content><Length>$LENGTH</Length><Reserved>1</Reserved><Date>$TIME</Date></request>"
echo $SMS
curl -v -b session.txt -c session.txt -H "X-Requested-With: XMLHttpRequest" --data "$SMS" http://192.168.8.1/api/sms/send-sms --header "__RequestVerificationToken: $TOKEN" --header "Content-Type:text/xml"
使用法は次のとおりです。
command phonenumber "text"
ステップ3パートB-SMSを受信する
そして、最後の未読のSMS(または、利用できない場合は最後の読み取りのSMS)を受信するために、次のスクリプトを使用します。
#!/bin/bash
./session.sh
./token.sh
TOKEN=$(<token.txt)
DATA="<request><PageIndex>1</PageIndex><ReadCount>1</ReadCount><BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>"
curl -b session.txt -c session.txt -H "X-Requested-With: XMLHttpRequest" --data "$DATA" http://192.168.8.1/api/sms/sms-list --header "__RequestVerificationToken: $TOKEN" --header "Content-Type:text/xml"
これはあまり良いコーディングではないかもしれませんが、機能します。
Peterはそれを本当にうまく説明しましたが、私は単一のスクリプトが好きで、Debianの代わりにOpenWrtルーターでそれを使用しています。
これがSMSを送信するための私のバージョンです:
#!/bin/sh
RESPONSE=`curl -s -X GET http://192.168.8.1/api/webserver/SesTokInfo`
COOKIE=`echo "$RESPONSE"| grep SessionID=| cut -b 10-147`
TOKEN=`echo "$RESPONSE"| grep TokInfo| cut -b 10-41`
NUMBER=$1
SMS=$2
DATA="<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones><Phone>$NUMBER</Phone></Phones><Sca></Sca><Content>$SMS</Content><Length>11</Length><Reserved>1</Reserved><Date>-1</Date></request>"
curl -v http://192.168.8.1/api/sms/send-sms \
-H "Cookie: $COOKIE" -H "__RequestVerificationToken: $TOKEN" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
--data $DATA
そしてここに最後の3つのSMSメッセージを読むためのスクリプトがあります:
#!/bin/sh
RESPONSE=`curl -s -X GET http://192.168.8.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.8.1/api/sms/sms-list --header "__RequestVerificationToken: $TOKEN" --header "Content-Type:text/xml"