Metadatos del dispositivo

Como revendedor, puedes asociar metadatos, como un número de teléfono o un número de orden de compra, con cada dispositivo. Para ello, puedes llamar a la API o subir un archivo CSV en el portal de inscripción automática. En la Tabla 1, se muestra quién puede asociar y ver los metadatos:

Tabla 1. Permisos de metadatos

Tarea Revendedores Clientes
Asociar metadatos llamando a la API
Asociar metadatos subiendo un archivo CSV al portal de inscripción automática
Ver los metadatos del dispositivo en los resultados de las llamadas a la API
Ver los metadatos del dispositivo en el portal de inscripción automática

Asignar metadatos

Para asociar metadatos con cada dispositivo, llama al partners.devices.metadata método. Puedes agregar números de teléfono y de pedido para tus dispositivos Android con las claves de la Tabla 2 que se muestra a continuación:

Tabla 2. Claves de metadatos para dispositivos Android

Datos Clave Tipo de valor Ejemplo
Número de teléfono phonenumber String +1 (800) 555-0100
Número de pedido ordernumber String GOOG#123/ABC-123456

Ambos valores de metadatos son cadenas de formato libre, por lo que puedes usar un formato que tenga sentido para tu organización.

Para los dispositivos ChromeOS, puedes usar las claves de la Tabla 3 que se muestra a continuación:

Tabla 3. Claves de metadatos para dispositivos ChromeOS

Datos Clave Tipo de valor Ejemplo
Número de pedido ordernumber String GOOG#123/ABC-123456
ID del activo annotatedassetid String CORP-001234
Ubicación annotatedlocation String Nueva York
Usuario asignado annotateduser String John Doe

Para asignar metadatos mientras creas dispositivos, inclúyelos cuando llames a claimAsync. En el siguiente ejemplo, se muestra cómo configurar un número de teléfono y un número de pedido para el dispositivo existente 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()

Los argumentos de metadatos reemplazan los valores de metadatos existentes para la misma clave.

Borrar metadatos

Puedes borrar los metadatos de los dispositivos. Pasa cadenas vacías para los valores de metadatos que deseas borrar. En el siguiente ejemplo, se muestra cómo borrar el número de teléfono:

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