已弃用) (发送设备命令

命名空间:microsoft.graph

重要

Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。

注意

此 API 已弃用,并在 2020 年 9 月 30 日停止返回数据。

此 API 使 Project Rome 功能能够命令与 Microsoft 帐户关联的设备。 执行 GET 调用 me/devices后,传入设备的 ID,向设备发出命令。 支持两种类型的命令:LaunchURI 和 AppServices。 如果使用的是 LaunchURI,请指定 类型有效负载 参数。 对于 AppService 调用,请指定 类型有效负载packageFamilyNameappServiceName 参数。

权限

要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) 不支持。
委派(个人 Microsoft 帐户) Device.Command
应用程序 不支持。

HTTP 请求

POST me/devices/{id}/commands

请求标头

标头
Authorization Bearer {token}。必需。
接受 application/json

请求正文

在请求正文中,提供命令属性的 JSON 表示形式。

{
  "type": "appService",
  "payload": "payload-JSON",
  "packageFamilyName": "packageFamilyName",
  "appServiceName": "appServiceName",
  "postbackURI": "postbackURI"
}

响应

HTTP/1.1 201 OK
{
  "id": "0",
  "status": "requesting",
  "type": "appService",
  "appServiceName": "appServiceName",
  "packageFamilyName": "packageFamilyName",
  "error": "null",
  "responsePayload": "null",
  "payload": "payload-JSON",
  "permissionTicket": "null",
  "postBackUri": "postbackURI"
}

命令属性

名称 类型 说明
payload microsoft.graph.json 要发送到应用服务或在设备上启动 URI 的有效负载。
responsePayload microsoft.graph.json 从目标设备返回的有效负载。
postBackURI 字符串 发回 URI 以发送更新的后续通知。
packageFamilyName String 应用程序的 Windows 包系列名称。
appServiceName String 由目标应用程序定义的应用服务的名称。 如果启动应用服务,则为必需。
type String LaunchURI 或 AppService。
id String 已发送到设备的命令的 ID。
actionStatus 字符串 命令的 状态
error String 与来自目标应用程序的请求关联的任何错误。

示例

示例 1:启动 URI

下面是 LaunchURI 请求的示例;它将在目标设备上启动 URI 或应用程序。 若要启动 URI 或应用,请使用在) 执行 me/devices GET 调用 (获取的设备 ID 发出 POST。 将 Type 参数设置为 LaunchURI 并提供 URI 值,例如 https://bing.com。

请求


POST me/devices/{id}/commands
Authorization: Bearer Eaeou....
Content-Type: application/json; charset=utf-8

{ "type" : "LaunchUri", "payload" : {"uri":"https://bing.com"}}

响应

HTTP/1.1 201 OK

{
  "id": "0158355AD4D680CC4E2994CC009EFFD7337D1B...",
  "status": "requesting",
  "type": null,
  "appServiceName": null,
  "packageFamilyName": null,
  "error": null,
  "permissionTicket": null,
  "postBackUri": null,
  "payload": {
    "uri": "https://bing.com"
  }
}

示例 2:应用服务

以下示例演示如何查询设备上的应用服务。 若要使用应用服务,必须使用在) 执行 me/devices GET 调用 (获取的设备 ID 执行 POST 调用。 若要使用以下示例,必须在目标设备上安装 Rome 应用

必须在调用中设置其他几个属性。 类型 必须设置为 AppServiceAppServiceName 必须设置为应用程序中定义的应用服务的名称, 必须将 PackageFamilyName 设置为应用清单中定义的包系列名称, 有效负载 保存在目标应用程序中调用的服务的密钥和值。

请求


POST me/devices/{id}/commands
Authorization: Bearer Eaeou....
Content-Type: application/json; charset=utf-8

{
  "type" : "AppService",
  "appServiceName" : "com.microsoft.test.cdppingpongservice",
  "packageFamilyName" : "5085ShawnHenry.RomanTestApp_jsjw7knzsgcce",
  "payload" : {
    "Type":"Toast","Title":"Hello","Subtitle":"World!"}
  }

响应

HTTP/1.1 201 OK

{
  "id": "0158355AD4D680CC4E2994CC009EFFD7EADA8307E96FF1C8D19B..",
  "status": "requesting",
  "type": null,
  "appServiceName": "com.microsoft.randomnumbergenerator",
  "packageFamilyName": "Microsoft.SDKSamples.AppServicesProvider.CS_8wekyb3d8bbwe",
  "error": null,
  "permissionTicket": null,
  "postBackUri": null,
  "payload": {
    "Type": "Toast",
    "Title": "Hello",
    "Subtitle": "World!"
  }
}