getAuth 获取身份验证(iOS 专业版无需此项)

新版入口地址: http://openapi.touchsprite.com/api/openapi (本网址仅为入口,不可使用浏览器直接访问) 同时支持 http 及 https 的 post 请求,兼容旧版地址

参数格式: JSON

请求方式:POST

客户端发送

{
    "action": "getAuth",
    "key":"233OivO1j9QOM0Am14hx31jKtv88wFoEXDZDxNUrZiD3kEqYzNcCAEe32ITwanzi", 
    "devices": ["f03b3e9a354f137d3c9bf3589e7662ae8","5e502808c7a1961bf6df44a234ef9a230"...], 
    "valid": 3600,  
    "time": 2592000  
}
属性 类型 说明
action string getAuth - 获取验证串
key string 开发者的 Access Key
devices array 设备号列表,设备数量不能超过 Access Key 的最大设备数限制
valid number 期待验证串的有效期,单位秒,最大为 3600
time number 当前 Unix 时间戳

服务器正确返回

{
    "status": 200,
    "message":"xx",
    "time": 1422930265,
    "auth": "xx", 
    "valid": 3600,   
    "remainder_token": 4 
}
属性 类型 说明
status number 200 - 成功,400 - 参数错误,401 - 授权验证失败
message string status 不等于 200 时,返回错误提示
time number 当前 Unix 时间戳
auth string 验证串,直接填充到发送给触动服务的 auth 字段
valid number 验证串实际有效时间
devices array 触动精灵设备号列表
remainder_token number 剩余的令牌数,当剩余令牌为 0 时,getAuth 协议将调用失败

示例代码

local sz = require"sz"
local http = require"szocket.http"
local json = sz.json
local ltn12 = require"ltn12"
local response_body = {} -- 构造主体部位接受的地方
local post_data  = {
    --触动专业版 iOS 无需写入验证串
    action = "getAuth",
    key = "T4GrIwHvUHMgMpb4lmypgdmt111T1IGPxeC5hPqxgCgpMBzy2lpx4Y82ScXpxwp8",  -- 需要替换成自己的 Key
    devices = {getDeviceID()},  -- 设备号
    time = os.time(),
    valid = 3600,
}
post_data = json.encode(post_data)    
local staus,code,header = http.request{
    url = "http://openapi.touchsprite.com/api/openapi",
    method = "POST",
    headers =
    {
        ["Content-Type"] = "application/x-www-form-urlencoded",
        ["Content-Length"] = #post_data,
    },
    source = ltn12.source.string(post_data),
    sink = ltn12.sink.table(response_body),  --用 ltn12 转化接受的数据为 lua 可用
}
dialog(table.concat(response_body))
--将会打印以下内容,这是一个 json,将之使用 json.decode 处理后取 auth 字段保存起来供我们接下来使用
--{"status":200,
--触动专业版 iOS 无需写入验证串
--"auth":"直接马赛克好了,那么长的一串",这就是我们获取到的验证串,由于太长我就马赛克掉了
--"valid":2592000,"devices":["aab9d7903393a992dcc0c0f51b595b70"],
--"remainder_token":0,
--"time":1470216706}]]
--local auth =  "eyJrZXkiOiJGSmRrNFdBQmY2WnByc0NFSG40ZzNUcmZZMDlBNk9HNXNcL0NiczNzblhzdTQ3NTczRDJ5dXFNN1wvdXFlRFwvMldCclZyU3hEbEdEb0owWUJtV1RpekV5OWlFMVdoNmpiZ0Y4dG5mWWwrY0hKSHBVTmtSOWx4QkxCQjVvOTN1WTZGMFwvRzEyODBxY09WQUtXazExVklqT1pQM3pRVzJzeUVMeDVvM200QzVYcitKQ3pxdmhqM2hjdWx1MXJCdjJkRUg0YTlGaWZtNmpERXUyU1NkajJqcWRYb0M2Y013eUZnb08rc1dqVUtNNUtqekZZN3pJc1IrVTZwM0R3MWZnQ2dSRVZCdUhpRFdyUGdCXC9HbXNLaVZoM1JGdzF6aWlwWEVJSnhtZ2VOeUFqNnlVSGp2K2lVVkVGTThzNkdVc05UMUN1ZmpHK0NGV3VyRjg4VTZSQlRKeGdhQT09IiwiZGF0YSI6IjN0TFhNVFRKRTJkdWZtUlFcL2tuTjlcL3Z4Qm8zOFhlT2t1WE1UUHVKSHMrYXRMdFc3YW96QzlFY3IwcFwvTVJGdlJFRDlcL3NaY3p6ellQRlI4aDJocmtyWjhjUzdSQ2F0ZDRLMHhNXC9zaGpXclNzQTd1NG5HaE5kdTMyeTQ1bm9TUXgiLCJtZDUiOiJQdHp0YXo5b1ZKalgzb29HcTRVczVuYWgyVVwvbkxKcXpFNkNHMWVXSnRPMFVpa2ZhNjFEa1RNZVNhZ0hSUlwvYlFtdThYWXlOQWY3RERhekJxSDZcL2ZIR0hObkhSYzhpeDVOWWo1Mmt1cERuK3VMb3BDUlM0Q0lKREdhbjZqd2VnRnUzQjdia0RQbERRYzRKRlpCNmpXc1B0emFkdGtWVUZvOWYxazFKNk1Qd3dGNUx2WHVsSDB1MTg1SVVCeHJyNnZBRXdhcVBxUTYxbUpVZFg5ZE5RWTR2UzVoalp1UU85bXpEd3d1UDhMblwvVVY1QnAxUmNVVmZqVFA4MThzTjRyTHhCZk9lMzBHR2pVYkR1SEhpUlwvVjhyVzZGN0RiYWpIYXBcL0lnbmJrN1wvYkJaU1NjTEF4dkNkajc2Y2EwSmlqNHJqOHZPRG0rcXFGeWVtMWJlcFV3VUhBPT0ifQ=="

注意事项

  • Access Key 可以在开发者平台获取

  • 令牌数与连接设备数和连接速度无关

  • 获取触动精灵设备号函数:getDeviceID ,获取触动精灵安卓账号 ID 函数:getTSAccountID

  • 详细示例详见完整示例代码

  • 触动精灵 iOS 专业版无需调用此函数。

  • 安卓标准版、iOS 标准版及 iOS 专业版必须有授权,授权为试用状态无法调用。

Copyright 北京帮你玩科技有限公司 2023 all right reserved,powered by Gitbook该文章修订时间: 2024-03-06 17:50:18

results matching ""

    No results matching ""