Получение списка устройств для существующего пакета для указанного клиента

Область применения: Центр партнеров

Отправка списка сведений об устройствах в существующий пакет для указанного клиента. Это связывает устройства с уже созданным пакетом устройств.

Необходимые компоненты

  • Учетные данные, описанные в статье о проверке подлинности в Центре партнеров. Этот сценарий поддерживает проверку подлинности с помощью автономных учетных данных приложения и приложения и пользователя.

  • Идентификатор клиента (customer-tenant-id). Если вы не знаете идентификатор клиента, его можно найти в Центре партнеров, выбрав рабочую область "Клиенты" , затем клиент из списка клиентов, а затем учетная запись. На странице "Учетная запись клиента" найдите идентификатор Майкрософт в разделе "Сведения о учетной записи клиента". Идентификатор Майкрософт совпадает с идентификатором клиента (customer-tenant-id).

  • Идентификатор пакета устройства.

  • Список ресурсов устройств, которые предоставляют сведения об отдельных устройствах.

C#

Чтобы отправить список устройств в существующий пакет устройства, сначала создайте экземпляр нового экземпляра [List/dotnet/api/system.collections.generic.list-1) типа Device и заполните список устройства устройствами. Для идентификации каждого устройства требуются следующие сочетания заполненных свойств:

Затем вызовите метод IAggregatePartner.Customers.ById с идентификатором клиента, чтобы получить интерфейс для операций с указанным клиентом. Затем вызовите метод DeviceBatches.ById с идентификатором пакета устройства, чтобы получить интерфейс для операций для указанного пакета. Наконец, вызовите метод Devices.Create или CreateAsync со списком устройств, чтобы добавить устройства в пакет устройства.

IAggregatePartner partnerOperations;
string selectedCustomerId;
string selectedDeviceBatchId;

List<Device> devicesToBeUploaded = new List<Device>
{
    new Device
    {
        HardwareHash = "DummyHash1234",
        ProductKey = "00329-00000-0003-AA606",
        SerialNumber = "2R9-ZNP67"
    },

    new Device
    {
        HardwareHash = "DummyHash12345",
        ProductKey = "00329-00000-0003-AA606",
        SerialNumber = "2R9-ZNP67"
    }
};

var trackingLocation =
    partnerOperations.Customers.ById(selectedCustomerId).DeviceBatches.ById(selectedDeviceBatchId).Devices.Create(devicesToBeUploaded);

Пример: тестовое приложение консоли. Проект: класс примеров пакета SDK Центра партнеров: CreateDevices.cs

Запрос REST

Синтаксис запроса

Способ URI запроса
POST {baseURL}/v1/customers/{customer-id}/deviceBatches/{devicebatch-id}/devices HTTP/1.1

Параметр универсального кода ресурса

При создании запроса используйте следующие пути и параметры запроса.

Имя. Type Обязательно Описание
customer-id строка Да Строка в формате GUID, определяющая клиент.
devicebatch-id строка Да Строковый идентификатор, определяющий пакет устройства.

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

Дополнительные сведения см. в статье о заголовках REST Центра партнеров.

Текст запроса

Текст запроса должен содержать массив объектов Device . Принимаются следующие сочетания полей для идентификации устройства:

  • hardwareHash + productKey.
  • hardwareHash + serialNumber.
  • hardwareHash + productKey + serialNumber.
  • только оборудованиеHash.
  • только productKey.
  • serialNumber + oemManufacturerName + modelName.

Пример запроса

POST https://api.partnercenter.microsoft.com/v1/customers/c7f3c849-129f-4b85-a96d-4f8e88b315a3/deviceBatches/Test/devices HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: e286d69b-7f5f-4098-8999-21d3b54e4e47
MS-CorrelationId: 772871a9-399b-4f3b-b8c7-38f550e4f22a
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 482
Expect: 100-continue

[{
        "Id": null,
        "SerialNumber": "2R9-ZNP67",
        "ProductKey": "00329-00000-0003-AA606",
        "HardwareHash": "DummyHash1234",
        "Policies": null,
        "CreatedBy": null,
        "UploadedDate": "0001-01-01T00:00:00",
        "AllowedOperations": null,
        "Attributes": {
            "ObjectType": "Device"
        }
    }, {
        "Id": null,
        "SerialNumber": "2R9-ZNP67",
        "ProductKey": "00329-00000-0003-AA606",
        "HardwareHash": "DummyHash12345",
        "Policies": null,
        "CreatedBy": null,
        "UploadedDate": "0001-01-01T00:00:00",
        "AllowedOperations": null,
        "Attributes": {
            "ObjectType": "Device"
        }
    }
]

Внимание

По состоянию на июнь 2023 г. последняя версия пакета SDK для .NET для Центра партнеров 3.4.0 теперь архивируется. Вы можете скачать выпуск пакета SDK из GitHub вместе с файлом чтения, содержащим полезные сведения.

Партнерам рекомендуется продолжать использовать REST API Центра партнеров.

Ответ REST

В случае успешного выполнения ответ содержит заголовок location, имеющий универсальный код ресурса (URI), который можно использовать для получения состояния отправки устройства. Сохраните этот универсальный код ресурса (URI) для использования с другими связанными REST API.

Коды успешного выполнения и ошибок в ответе

Каждый ответ сопровождается кодом состояния HTTP, обозначающим успешное или неудачное выполнение, и дополнительными сведениями для отладки. Используйте средство трассировки сети, чтобы просматривать этот код, тип ошибки и дополнительные параметры. Полный список ответов есть в статье Коды ошибок REST в Центре партнеров.

Пример ответа

HTTP/1.1 202 Accepted
Content-Length: 0
Location: /customers/c7f3c849-129f-4b85-a96d-4f8e88b315a3/batchJobStatus/16c00110-e79a-433d-aa28-f69dd60df671
MS-CorrelationId: 772871a9-399b-4f3b-b8c7-38f550e4f22a
MS-RequestId: e286d69b-7f5f-4098-8999-21d3b54e4e47
MS-CV: OBkGN9pSN0a5xvua.0
MS-ServerId: 101112012
Date: Thu, 28 Sep 2017 20:08:46 GMT