syntax = "proto3"; package proto; //新增一个可选的package声明符,用来防止不同的消息类型有命名冲突 option go_package = "./pkg/proto;proto"; //这个选项表明生成go结构体所在的包 //import "google/protobuf/any.proto"; message AppInfo { string requestId = 1; } message DevInfo { string mac = 1; string subMac = 2; // 子设备mac,中控变成了子设备 string mid = 3; // mid string vender = 4; // 细分码,用于设备没授权的情况下给默认boot string hid = 5;// 模组id,优先级高于细分码 - 若能匹配,优先使用 string homeId = 6; // 设备所属家庭 id string userId = 7; // 用户id,非必传 } message TokenSearchRequest { string mac = 1; string requestId = 2; string mid = 3; // mid string vender = 4; // 细分码,用于设备没授权的情况下给默认boot string homeId = 5; // 设备所属家庭id string userId = 6; // 用户id string subMac = 7; // 子设备mac,中控变成了子设备 string hid = 8;// 模组id,优先级高于细分码 - 若能匹配,优先使用 bool isReBind = 9; //是否强制重新绑定 } /* data.uriType 取值说明: QQMusic = 0 // qq音乐(腾讯v1) QQMusicV2 = 1 // qq音乐(腾讯v2) data.status 取值说明: Unassigned = 0 //未分配 Assigned = 1 //已分配 Using = 2 //已授权,使用中 Expired = 3 //过期 Invalidation = 4 //异常失效 Unbind = 5 //解除绑定*/ message TokenSearchResponse { message TokenMemo { string dsn = 1; string authorization = 2; string accessToken = 3; string appKey = 4; int32 status = 5; int32 uriType = 6; string homeId = 7; // 设备所绑定家庭的 homeid } message Status { int32 code = 1; string msg = 2; } Status status = 1; TokenMemo data = 2; } message DevMusicStatusChangeResponse { message Status { int32 code = 1; string msg = 2; } Status status = 1; } message TokenSearchRequestV2 { AppInfo appInfo = 1; DevInfo devInfo = 2; bool isReBind = 9; //是否强制重新绑定 } message SpeechConfResponse { message Data { string productId = 1; string appkey = 2; } message Status { int32 code = 1; string msg = 2; } Status status = 1; Data data = 2; } message TokenSearchResponseNetease { message Status { int32 code = 1; string msg = 2; } Status status = 1; message Data { string accessToken = 1; string deviceId = 2; string clientId = 3; string productId = 4; int32 status = 5; string homeId = 6; // 设备所绑定家庭的 homeid } Data data = 2; } service TokenSearch{ rpc TokenSearchHandle(TokenSearchRequest) returns (TokenSearchResponse); rpc TokenSearchHandleV2(TokenSearchRequest) returns (TokenSearchResponse); //升级版,给什么用什么,只去 mac 和 subMac 字段,其他的传入字段都不使用,只分配不会绑定到主账号 rpc DevBind(TokenSearchRequest) returns (TokenSearchResponse);//升级,给什么用什么,只去 mac 和 subMac 字段,其他的传入字段都不使用,且会绑定到主账号 rpc DevBindBySub(TokenSearchRequest) returns (TokenSearchResponse); // 该接口,subMac 必填且会用 subMac 覆盖 mac 字段 rpc DevMusicStatusChange(TokenSearchRequest) returns (DevMusicStatusChangeResponse); //如果发现设备音乐账号状态变更,则调用此接口 rpc GetSpeechConf(TokenSearchRequestV2) returns (SpeechConfResponse); // 思必驰配置获取 rpc TokenSearchNetease(TokenSearchRequestV2) returns (TokenSearchResponseNetease); // 网易云音乐token获取 }