作为转销商,您可以将元数据(例如电话号码或采购订单号)与每部设备相关联。您可以通过调用 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
设置电话号码和订单号:
// 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...