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

Với tư cách 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 mỗi 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 một tệp CSV lên trong cổng thông tin 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 thông tin tự động đăng ký
Xem siêu dữ liệu về thiết bị trong kết quả của lệnh gọi API
Xem siêu dữ liệu về 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 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 của bạn sử dụ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 nên bạn có thể sử dụng định dạng giúp phù hợp với tổ chức của bạn.

Đối với thiết bị ChromeOS, bạn có thể 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ụ:
Mã 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 vào khi gọi claimAsync. Ví dụ bên dưới cho thấy việc đặt số điện thoại và số đơn đặt hàng cho thiết bị hiện tại 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 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 các thiết bị. Truyền chuỗi trống cho siêu dữ liệu các giá trị bạn muốn xoá. Ví dụ bên dưới trình bày cách xoá số điện thoại 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...