设备元数据
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
作为转销商,您可以将电话号码或
采购订单编号。您可以通过调用
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...
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-25。
[null,null,["最后更新时间 (UTC):2025-07-25。"],[[["\u003cp\u003eResellers can associate metadata, such as telephone and order numbers, with each device through the API or by uploading a CSV file in the zero-touch portal.\u003c/p\u003e\n"],["\u003cp\u003eMetadata can be assigned to Android devices using \u003ccode\u003ephonenumber\u003c/code\u003e and \u003ccode\u003eordernumber\u003c/code\u003e keys, while ChromeOS devices only use the \u003ccode\u003eordernumber\u003c/code\u003e key.\u003c/p\u003e\n"],["\u003cp\u003eBoth resellers and customers can view device metadata, but only resellers can associate metadata.\u003c/p\u003e\n"],["\u003cp\u003eYou can assign metadata to devices by using the \u003ccode\u003epartners.devices.metadata\u003c/code\u003e method or when creating devices with \u003ccode\u003eclaimAsync\u003c/code\u003e, including the metadata in the request.\u003c/p\u003e\n"],["\u003cp\u003eMetadata values for a specific key can be updated by providing new values, or deleted by providing an empty string for that metadata key.\u003c/p\u003e\n"]]],["Resellers can associate metadata, like telephone or order numbers, with devices via API calls or CSV uploads. This metadata can be viewed by resellers and customers. For Android, keys `phonenumber` and `ordernumber` are used; for ChromeOS, only `ordernumber` is available. Metadata is assigned using the `partners.devices.metadata` method, including it in `claimAsync`, or setting values via an API call. To delete metadata, empty string values should be passed for the target keys.\n"],null,["# Device metadata\n\nAs a reseller you can associate metadata, such as a telephone number or a\npurchase order number, with each device. You can associate metadata by calling\nthe API or by [uploading a CSV file](/zero-touch/guides/portal#devices-import)\nin the zero-touch portal. Table 1 shows who can associate and view metadata:\n\n**Table 1**. Metadata permissions\n\n| Task | Resellers | Customers |\n|---------------------------------------------------------------------|-----------|-----------|\n| Associate metadata by calling the API | | |\n| Associate metadata by uploading a CSV file to the zero-touch portal | | |\n| View device metadata in the results of API calls | | |\n| View device metadata in the zero-touch portal | | |\n\nAssign metadata\n---------------\n\nTo associate metadata with each device, call the\n[`partners.devices.metadata`](/zero-touch/reference/reseller/rest/v1/partners.devices/metadata) method. You can add\ntelephone and order numbers for your Android devices using keys from the table 2\nbelow:\n\n**Table 2**. Metadata keys for Android devices\n\n| Data | Key | Value type | Example |\n|------------------|---------------|------------|-----------------------|\n| Telephone number | `phonenumber` | String | *+1 (800) 555-0100* |\n| Order number | `ordernumber` | String | *GOOG#123/ABC-123456* |\n\nBoth metadata values are free-form strings, so you can use a format that makes\nsense for your organization.\n\nFor ChromeOS devices, you can use the keys from table 3 below:\n\n**Table 3**. Metadata keys for ChromeOS devices\n\n| Data | Key | Value type | Example |\n|--------------|---------------|------------|-----------------------|\n| Order number | `ordernumber` | String | *GOOG#123/ABC-123456* |\n\nTo assign metadata as you create devices, include the metadata when calling\n[`claimAsync`](/zero-touch/reference/reseller/rest/v1/partners.devices/claimAsync). The example below shows setting a\ntelephone number and order number for the existing device `TARGET_DEVICE_ID`: \n\n### Java\n\n```java\n// Allowed metadata dictionary keys.\nprivate static String METADATA_KEY_PHONE_NUMBER = \"phonenumber\";\nprivate static String METADATA_KEY_ORDER_NUMBER = \"ordernumber\";\n\n// ...\n// Create the metadata record with the values.\nDeviceMetadata metadata = new DeviceMetadata();\nMap\u003cString,String\u003e entries = new HashMap\u003cString, String\u003e();\nentries.put(METADATA_KEY_ORDER_NUMBER, \"GOOG123/ABC-#123456\");\nentries.put(METADATA_KEY_PHONE_NUMBER, \"+1 (800) 555-0100\");\nmetadata.setEntries(entries);\n\n// Set the metadata values on the target device.\nUpdateDeviceMetadataRequest body = new UpdateDeviceMetadataRequest();\nbody.setDeviceMetadata(metadata);\n\nDeviceMetadata response = service\n .partners()\n .devices()\n .metadata(PARTNER_ID, targetDeviceId, body)\n .execute();\n```\n\n### .NET\n\n```c#\n// Allowed metadata dictionary keys.\nprivate static string MetadataKeyPhoneNumber = \"phonenumber\";\nprivate static string MetadataKeyOrderNumber = \"ordernumber\";\n\n// ...\n// Create the metadata record with the values.\nDeviceMetadata metadata = new DeviceMetadata\n{\n Entries = new Dictionary\u003cstring, string\u003e {\n {MetadataKeyOrderNumber, \"GOOG123/ABC-#123456\"},\n {MetadataKeyPhoneNumber, \"+1 (800) 555-0100\"}\n }\n};\n\n// Set the metadata values on the target device.\nUpdateDeviceMetadataRequest body = new UpdateDeviceMetadataRequest\n{\n DeviceMetadata = metadata\n};\nvar request = service.Partners.Devices.Metadata(body, PartnerId, targetDeviceId);\nvar results = request.Execute();\n```\n\n### Python\n\n```python\n# Allowed metadata dictionary keys.\nMETADATA_KEY_ENTRIES = \"entries\";\nMETADATA_KEY_PHONE_NUMBER = \"phonenumber\";\nMETADATA_KEY_ORDER_NUMBER = \"ordernumber\";\n\n# ...\n# Create the record with values.\nnew_metadata = {METADATA_KEY_ENTRIES:{ \\\n METADATA_KEY_PHONE_NUMBER:'+1 (800) 555-0100', \\\n METADATA_KEY_ORDER_NUMBER:'GOOG123/ABC-#123456'}}\n\n# Set the metadata values on the target device.\nresponse = service.partners().devices().metadata(\n metadataOwnerId=PARTNER_ID,\n deviceId=target_device_id,\n body={'deviceMetadata':new_metadata}).execute()\n```\n\nYour metadata arguments replace existing metadata values for the same key.\n\nDelete metadata\n---------------\n\nYou can delete your metadata from devices. Pass empty strings for metadata\nvalues you want to delete. The example below shows how to delete the telephone\nnumber: \n\n### Java\n\n```java\n// Create the metadata record with the values.\nDeviceMetadata metadata = new DeviceMetadata();\nMap\u003cString,String\u003e entries = new HashMap\u003cString, String\u003e();\nentries.put(METADATA_KEY_PHONE_NUMBER, \"\");\nmetadata.setEntries(entries);\n\n// Call partners().devices().metadata() to remove the phone metadata from the device...\n```\n\n### .NET\n\n```c#\n// Create the metadata record with empty values.\nDeviceMetadata metadata = new DeviceMetadata\n{\n Entries = new Dictionary\u003cstring, string\u003e {\n {MetadataKeyPhoneNumber, \"\"}\n }\n};\n\n// Call Partners.Devices.Metadata to remove the phone metadata from the device...\n```\n\n### Python\n\n```python\n# Create the metadata record with empty values.\nmetadata_to_remove = {METADATA_KEY_ENTRIES: {METADATA_KEY_PHONE_NUMBER:''}}\n\n# Call partners().devices().metadata() to remove the phone number\n# metadata from the device...\n```"]]