В качестве реселлера вы можете привязывать к каждому устройству метаданные, такие как номер телефона или номер заказа на покупку. Привязать метаданные можно, обратившись к 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 |
| Идентификатор актива | annotatedassetid | Нить | CORP-001234 |
| Расположение | annotatedlocation | Нить | Нью-Йорк |
| Назначенный пользователь | annotateduser | Нить | Джон Доу |
Чтобы назначать метаданные при создании устройств, включите их в вызов функции claimAsync . В приведенном ниже примере показано назначение номера телефона и номера заказа для существующего устройства TARGET_DEVICE_ID :
Java
// 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();
Python
# 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()
Ваши аргументы метаданных заменяют существующие значения метаданных для того же ключа.
Удалить метаданные
Вы можете удалить метаданные с устройств. Укажите пустые строки для значений метаданных, которые вы хотите удалить. В приведенном ниже примере показано, как удалить номер телефона:
Java
// 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...
Python
# 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...