DJI 设备请求回复

当 DJI 设备请求需要云端业务决策时,接入方可以通过开放平台向指定 request_id 写回回复。平台会负责把回复转换为设备侧可识别的格式并完成下发。

Endpoint

  • 回写回复:POST /api/v1/open/device-requests/{requestId}/reply

回复流程

  1. 先在 DJI Requests 页面获取 request_id
  2. 按业务决策构造 reply_code / reply_message / payload
  3. 调用回写接口提交回复。
  4. 平台返回 202 表示已受理并进入设备侧回执流程。

Authentication

  • API ID + API Key + 签名
  • scope: open:device-request:create

Path Parameters

NameTypeRequiredDescription
requestIdstringyes需要回复的设备请求唯一标识

Query Parameters

无。

Request Body

请求体(严格对齐 OpenAPI DeviceRequestReplyRequest):
FieldTypeRequiredDescription
reply_codestringyes回执码(如 APPROVED
reply_messagestringno回执说明
payloadobjectno扩展回执负载
示例:
{
  "reply_code": "APPROVED",
  "reply_message": "approved",
  "payload": {
    "config_result": "ok"
  }
}

Responses

  • 202:回复已接收并进入设备侧回执流程
  • 404requestId 不存在
  • 5xx:平台内部处理失败
202 响应字段(对齐 OpenAPI DeviceRequestReplyResponse):
FieldTypeDescription
request_idstring设备请求唯一标识
reply_codestring平台回执码
reply_messagestring平台回执信息
reply_sourcestringmanual(显式人工/业务回复)
replied_atstring(date-time)回执入库时间
202 示例:
{
  "request_id": "2b0056c3-b4c8-4994-a286-047e130d38d7",
  "reply_code": "APPROVED",
  "reply_message": "approved",
  "reply_source": "manual",
  "replied_at": "2026-04-22T12:00:00Z"
}

Example

package main

import (
  "bytes"
  "net/http"
)

func main() {
  body := []byte(`{"reply_code":"APPROVED","reply_message":"approved","payload":{"config_result":"ok"}}`)
  req, _ := http.NewRequest(http.MethodPost, "https://dev.utmos.dev/api/v1/open/device-requests/2b0056c3-b4c8-4994-a286-047e130d38d7/reply", bytes.NewBuffer(body))
  req.Header.Set("Content-Type", "application/json")
  req.Header.Set("X-Api-Id", "YOUR_API_ID")
  req.Header.Set("X-Api-Timestamp", "YOUR_UNIX_SECONDS")
  req.Header.Set("X-Api-Signature", "YOUR_SIGNATURE")
  _, _ = http.DefaultClient.Do(req)
}

下一步

回写后可回到 DJI Requests 页面查询同一 request_id 的回执状态与时间戳字段更新。