Siêu dữ liệu của thiết bị

Là đạ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 tải tệp CSV lên trong cổng thông tin tự động đăng ký. Bảng 1 cho thấy những ai 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 thông tin tự động đăng ký
Xem siêu dữ liệu thiết bị trong kết quả của lệnh gọi API
Xem siêu dữ liệu của 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 các thiết bị Android bằng cách sử dụng các khoá trong bảng 2 dưới đây:

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
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 nên bạn có thể sử dụng định dạng phù hợp với tổ chức của mình.

Đối với các thiết bị ChromeOS, bạn có thể sử dụng các khoá trong bảng 3 dưới đây:

Bảng 3. Khoá siêu dữ liệu cho thiết bị ChromeOS

Dữ liệu Khoá Loại giá trị Ví dụ:
Số đơn đặt hàng ordernumber Chuỗi GOOG#123/ABC-123456

Để gán 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()

Đối số siêu dữ liệu của bạn 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 của mình khỏi các thiết bị. Truyền các chuỗi trống cho các giá trị siêu dữ liệu bạn muốn xoá. Ví dụ bên dưới cho biết 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...