기기 메타데이터

리셀러는 전화번호나 구매주문서 번호와 같은 메타데이터를 각 기기에 연결할 수 있습니다. 제로터치 포털에서 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...