Поделиться через


Команда отправки устройства (не рекомендуется)

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Предостережение

Этот API устарел и не возвращает данные 30 сентября 2020 г.

Этот API позволяет в Project Rome управлять устройством, связанным с учетной записью Майкрософт. После выполнения вызова me/devicesGET в передайте идентификатор устройства, чтобы выдать на устройство команду. Поддерживаются два типа команд: LaunchURI и AppServices. Если вы используете LaunchURI, укажите тип и параметры полезных данных . Для вызова AppService укажите параметры type, полезные данные, packageFamilyName и appServiceName .

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) Не поддерживается. Не поддерживается.
Делегированные (личная учетная запись Майкрософт) Device.Command Недоступно.
Для приложений Не поддерживается. Не поддерживается.

HTTP-запрос

POST me/devices/{id}/commands

Заголовки запросов

Заголовок Значение
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Accept 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 String Опубликуйте обратный URI для отправки последующих уведомлений об обновлениях.
packageFamilyName String Имя семейства пакетов Windows для приложения.
appServiceName String Имя службы приложений, определенное целевым приложением. Требуется при запуске службы приложений.
type String LaunchURI или AppService.
id String Идентификатор команды, отправленной на устройство.
actionStatus String Состояние команды.
error String Любые ошибки, связанные с запросом из целевого приложения.

Примеры

Пример 1. Запуск URI

Ниже приведен пример запроса LaunchURI. он запустит универсальный код ресурса (URI) или приложение на целевом устройстве. Чтобы запустить универсальный код ресурса (URI) или приложение, выполните post с помощью идентификатора устройства (полученного при выполнении вызова GET в me/devices). Задайте для параметра 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. Служба приложений

В следующем примере показано, как запрашивать службу приложений на устройстве. Чтобы использовать службу приложений, необходимо выполнить вызов POST, используя идентификатор устройства (полученный при выполнении вызова GET в me/devices). Чтобы использовать следующий пример, необходимо установить приложение Rome на целевом устройстве.

В вызове необходимо задать несколько дополнительных свойств. Типу должно быть присвоено значение AppService, AppServiceName — имя службы приложений, определенное в приложении, 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!"
  }
}