スクリプトのリモート起動 API
-
API の説明
POST /spawn HTTP/1.1
spawn_args: {"スクリプト起動引数":...}
[スクリプト本体] -
レスポンス例
{"code":1,"message":"操作失败"}{"code":2,"message":"脚本有语法错误","detail":"具体的なエラー情報"}{"code":3,"message":"已经有脚本正在运行中"}{"code":233,"message":"未知错误"} -
補足
- [スクリプト起動引数] は改行を含まない印字可能な文字列です
- [スクリプト本体] はスクリプトの内容で、テキストまたは暗号化されたバイナリデータを使用できます
- スクリプト側では proc_get または proc_take を使用してスクリプト起動引数を取得できます
- スクリプトはファイルとしてデバイスに保存されず、実行のみ行われます
- 前項の例外として、デバイスでスクリプトデーモンモードが有効な場合、デバイスはそのデバイスに関連するスクリプトデータをキャッシュします
-
例
たとえば、次のリクエストを作成してデバイスに送信します
POST /spawn HTTP/1.1
spawn_args: {"server_ip":"192.168.31.13","port":55555}
Content-Length: 123
local args = proc_get("spawn_args")
args = json.decode(args)
sys.alert("帐号服务器的 IP 为:"..args.server_ip.."\n 端口为:"..args.port)デバイスに次のダイアログが表示されます ->
アカウントサーバーの IP:192.168.31.13
ポート:55555- この例の Python 実装(Python 3.x に対応):
# -*- coding: utf-8 -*-
import http.client
import json
spawn_args = {
"server_ip": "192.168.31.13", # パソコン側の IP アドレス
"port": 55555, # パソコン側のポート
}
data = r'''
local args = proc_get("spawn_args")
args = json.decode(args)
sys.alert("帐号服务器的 IP 为:"..args.server_ip.."\n 端口为:"..args.port)
'''
headers = {
"Content-type": "text/lua",
"spawn_args": json.dumps(spawn_args),
}
conn = http.client.HTTPConnection("192.168.31.72:46952") # デバイス側のアドレスとポート
conn.request("POST", "/spawn", data.encode('utf-8'), headers) # data を UTF-8 でエンコード
response = conn.getresponse()
print(response.status, response.reason) # print() 関数を使用
data = response.read()
print(data.decode('utf-8')) # レスポンスデータをデコードして print() 関数で出力
conn.close()