作为转销商,您可以将元数据(例如电话号码或采购订单号)与每部设备相关联。您可以通过调用 API 或在零触摸门户中上传 CSV 文件来关联元数据。表 1 显示了谁可以关联和查看元数据:
表 1. 元数据权限
任务 | 转销商 | 客户 |
---|---|---|
通过调用 API 关联元数据 | ||
通过向零触摸门户上传 CSV 文件来关联元数据 | ||
在 API 调用结果中查看设备元数据 | ||
在零触摸门户中查看设备元数据 |
分配元数据
要将元数据与每台设备相关联,请调用
partners.devices.metadata
方法。您可以添加
使用表 2 中的密钥为 Android 设备分配电话号码和订单号
如下:
表 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
设置电话号码和订单号:
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();
.NET
// 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...
.NET
// 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...