Метаданные устройства

Как реселлер вы можете связать метаданные, такие как номер телефона или номер заказа на покупку, с каждым устройством. Вы можете связать метаданные, вызвав API или загрузив CSV-файл на автоматический портал. В таблице 1 показано, кто может связывать и просматривать метаданные:

Таблица 1 . Разрешения метаданных

Задача Реселлеры Клиенты
Свяжите метаданные, вызвав API
Свяжите метаданные, загрузив CSV-файл на автоматизированный портал.
Просмотр метаданных устройства в результатах вызовов API
Просмотр метаданных устройства на автоматическом портале

Назначить метаданные

Чтобы связать метаданные с каждым устройством, вызовите метод partners.devices.metadata . Вы можете добавить номера телефонов и заказов для своих Android-устройств, используя клавиши из таблицы 2 ниже:

Таблица 2 . Ключи метаданных для устройств Android

Данные Ключ Тип значения Пример
Номер телефона phonenumber Нить +1 (800) 555-0100
Номер заказа ordernumber Нить GOOG#123/ABC-123456

Оба значения метаданных представляют собой строки произвольной формы, поэтому вы можете использовать формат, подходящий для вашей организации.

Для устройств ChromeOS можно использовать клавиши из таблицы 3 ниже:

Таблица 3 . Ключи метаданных для устройств ChromeOS

Данные Ключ Тип значения Пример
Номер заказа ordernumber Нить GOOG#123/ABC-123456

Чтобы назначить метаданные при создании устройств, включите метаданные при вызове claimAsync . В приведенном ниже примере показана установка номера телефона и номера заказа для существующего устройства TARGET_DEVICE_ID :

Джава

// Allowed metadata dictionary keys.
private static String METADATA_KEY_PHONE_NUMBER = "phonenumber";
private static String METADATA_KEY_ORDER_NUMBER = "ordernumber";

// ...
// Create the metadata record with the values.
DeviceMetadata metadata = new DeviceMetadata();
Map<String,String> entries = new HashMap<String, String>();
entries.put(METADATA_KEY_ORDER_NUMBER, "GOOG123/ABC-#123456");
entries.put(METADATA_KEY_PHONE_NUMBER, "+1 (800) 555-0100");
metadata.setEntries(entries);

// Set the metadata values on the target device.
UpdateDeviceMetadataRequest body = new UpdateDeviceMetadataRequest();
body.setDeviceMetadata(metadata);

DeviceMetadata response = service
        .partners()
        .devices()
        .metadata(PARTNER_ID, targetDeviceId, body)
        .execute();

.СЕТЬ

// Allowed metadata dictionary keys.
private static string MetadataKeyPhoneNumber = "phonenumber";
private static string MetadataKeyOrderNumber = "ordernumber";

// ...
// Create the metadata record with the values.
DeviceMetadata metadata = new DeviceMetadata
{
    Entries = new Dictionary<string, string> {
        {MetadataKeyOrderNumber, "GOOG123/ABC-#123456"},
        {MetadataKeyPhoneNumber, "+1 (800) 555-0100"}
    }
};

// Set the metadata values on the target device.
UpdateDeviceMetadataRequest body = new UpdateDeviceMetadataRequest
{
    DeviceMetadata = metadata
};
var request = service.Partners.Devices.Metadata(body, PartnerId, targetDeviceId);
var results = request.Execute();

Питон

# Allowed metadata dictionary keys.
METADATA_KEY_ENTRIES = "entries";
METADATA_KEY_PHONE_NUMBER = "phonenumber";
METADATA_KEY_ORDER_NUMBER = "ordernumber";

# ...
# Create the record with values.
new_metadata = {METADATA_KEY_ENTRIES:{ \
    METADATA_KEY_PHONE_NUMBER:'+1 (800) 555-0100', \
    METADATA_KEY_ORDER_NUMBER:'GOOG123/ABC-#123456'}}

# Set the metadata values on the target device.
response = service.partners().devices().metadata(
    metadataOwnerId=PARTNER_ID,
    deviceId=target_device_id,
    body={'deviceMetadata':new_metadata}).execute()

Ваши аргументы метаданных заменяют существующие значения метаданных для того же ключа.

Удалить метаданные

Вы можете удалить свои метаданные с устройств. Передайте пустые строки для значений метаданных, которые вы хотите удалить. В примере ниже показано, как удалить номер телефона:

Джава

// Create the metadata record with the values.
DeviceMetadata metadata = new DeviceMetadata();
Map<String,String> entries = new HashMap<String, String>();
entries.put(METADATA_KEY_PHONE_NUMBER, "");
metadata.setEntries(entries);

// Call partners().devices().metadata() to remove the phone metadata from the device...

.СЕТЬ

// Create the metadata record with empty values.
DeviceMetadata metadata = new DeviceMetadata
{
    Entries = new Dictionary<string, string> {
        {MetadataKeyPhoneNumber, ""}
    }
};

// Call Partners.Devices.Metadata to remove the phone metadata from the device...

Питон

# Create the metadata record with empty values.
metadata_to_remove = {METADATA_KEY_ENTRIES: {METADATA_KEY_PHONE_NUMBER:''}}

# Call partners().devices().metadata() to remove the phone number
# metadata from the device...