Là một đại lý, bạn có thể liên kết siêu dữ liệu (chẳng hạn như số điện thoại hoặc số đơn đặt hàng) với từng thiết bị. Bạn có thể liên kết siêu dữ liệu bằng cách gọi API hoặc bằng cách tải tệp CSV lên trong cổng thiết lập tự động. Bảng 1 cho biết những người có thể liên kết và xem siêu dữ liệu:
Bảng 1. Quyền đối với siêu dữ liệu
| Việc cần làm | Đại lý | Khách hàng |
|---|---|---|
| Liên kết siêu dữ liệu bằng cách gọi API | ||
| Liên kết siêu dữ liệu bằng cách tải tệp CSV lên cổng thiết lập tự động | ||
| Xem siêu dữ liệu thiết bị trong kết quả của các lệnh gọi API | ||
| Xem siêu dữ liệu thiết bị trong cổng thông tin tự động |
Chỉ định siêu dữ liệu
Để liên kết siêu dữ liệu với từng thiết bị, hãy gọi phương thức partners.devices.metadata. Bạn có thể thêm số điện thoại và số đơn đặt hàng cho thiết bị Android bằng các khoá trong bảng 2 bên dưới:
Bảng 2. Khoá siêu dữ liệu cho thiết bị Android
| Dữ liệu | Khoá | Loại giá trị | Ví dụ |
|---|---|---|---|
| Số điện thoại | phonenumber |
Chuỗi | +1 (800) 555-0100 |
| Mã số đơn đặt hàng | ordernumber |
Chuỗi | GOOG#123/ABC-123456 |
Cả hai giá trị siêu dữ liệu đều là chuỗi dạng tự do, vì vậy, bạn có thể sử dụng một định dạng phù hợp với tổ chức của mình.
Đối với thiết bị ChromeOS, bạn có thể sử dụng các phím trong bảng 3 bên dưới:
Bảng 3. Khoá siêu dữ liệu cho thiết bị ChromeOS
| Dữ liệu | Khoá | Loại giá trị | Ví dụ |
|---|---|---|---|
| Mã số đơn đặt hàng | ordernumber |
Chuỗi | GOOG#123/ABC-123456 |
| Mã tài sản | annotatedassetid |
Chuỗi | CORP-001234 |
| Thông tin vị trí | annotatedlocation |
Chuỗi | New York |
| Người dùng được chỉ định | annotateduser |
Chuỗi | Nguyễn Văn A |
Để chỉ định siêu dữ liệu khi bạn tạo thiết bị, hãy thêm siêu dữ liệu khi gọi claimAsync. Ví dụ bên dưới cho thấy cách đặt số điện thoại và số đơn đặt hàng cho thiết bị hiện có 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()
Các đối số siêu dữ liệu sẽ thay thế các giá trị siêu dữ liệu hiện có cho cùng một khoá.
Xoá siêu dữ liệu
Bạn có thể xoá siêu dữ liệu khỏi thiết bị. Truyền các chuỗi trống cho các giá trị siêu dữ liệu mà bạn muốn xoá. Ví dụ dưới đây cho thấy cách xoá số điện thoại:
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...