メインコンテンツまでスキップ

スクリプトのリモート起動 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()