Metadados do dispositivo

Como revendedor, você pode associar metadados, como um número de telefone ou um o número da ordem de compra de cada dispositivo. É possível associar metadados chamando a API ou fazendo upload de um arquivo CSV no portal de registro sem toque. A Tabela 1 mostra quem pode associar e visualizar metadados:

Tabela 1. Permissões de metadados

Tarefa Revendedores Clientes
Associar metadados chamando a API
Associar metadados fazendo upload de um arquivo CSV para o portal de registro sem toque
Ver metadados do dispositivo nos resultados de chamadas de API
Acessar metadados do dispositivo no portal de registro sem toque

Atribuir metadados

Para associar metadados a cada dispositivo, chame o método método partners.devices.metadata. Você pode adicionar números de telefone e pedido dos seus dispositivos Android usando as chaves da tabela 2 abaixo:

Tabela 2. Chaves de metadados para dispositivos Android

Dados Chave Tipo de valor Exemplo
Número de telefone phonenumber String +1 (800) 555-0100
Número do pedido ordernumber String GOOG#123/ABC-123456 (em inglês)

Ambos os valores de metadados são strings de formato livre, então você pode usar um formato que faça para sua organização.

Em dispositivos ChromeOS, você pode usar as chaves da tabela 3 abaixo:

Tabela 3. Chaves de metadados para dispositivos ChromeOS

Dados Chave Tipo de valor Exemplo
Número do pedido ordernumber String GOOG#123/ABC-123456 (em inglês)

Para atribuir metadados ao criar dispositivos, inclua-os ao chamar claimAsync O exemplo abaixo mostra como definir Número de telefone e número do pedido do dispositivo atual 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()

Seus argumentos de metadados substituem os valores de metadados existentes para a mesma chave.

Excluir metadados

É possível excluir metadados dos dispositivos. Transmitir strings vazias para metadados os valores que você quer excluir. O exemplo abaixo mostra como excluir o número número:

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...