Suscripción de datos con asmaster (v2)

Actualizado

Visión general

asmaster se utiliza para suscribirse a datos pertenecientes a cuentas y dispositivos almacenados en la nube. Al suscribirse a cuentas o dispositivos, los clientes recibirán automáticamente nuevos datos una vez que estén disponibles, a través de un canal .

Un flujo de solicitud típico con asmaster podría ser:

  • Confirmar que los servicios requeridos están disponibles con la list-services
  • Confirme que la cuenta de un nuevo usuario potencial no está suscrita ya con suscripciones de list-subscriptions
  • Suscríbete a una cuenta usando una cuenta de subscribe-account
  • Complete cualquier paso 2FA con perform-2fa-challenge y submit-2fa-challenge
  • Si los datos del dispositivo son importantes, llame a la list-devices para recuperar los dispositivos asociados.
  • Suscríbete a un dispositivo usando dispositivo de subscribe-device
  • Si un canal informa que el token de la cuenta ha caducado o está por expirar, resubscribe-account al usuario que resubscribe-account a resubscribe-account
  • Si el usuario desea dejar de monitorear su dispositivo o cuenta, llame a unsubscribe-device o unsubscribe-account

A lo largo de este flujo de solicitudes, el cliente debe mantener un proceso que consume datos de un canal .

Métodos de un vistazo

Gestión de servicios y reporting.

list-services

El método de list-services devuelve información sobre los servicios disponibles para el token de autenticación dado.

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    https://asmaster.reincubate.com/list-services/ -D -

Parámetros:

  • Ninguna

Respuesta

  • HTTP 200 Un diccionario JSON que contiene información de servicio disponible
{ "services": [{
    "name": "iCloud",
    "actions": [{
      "description": "",
      "parameters": [{
        "type": "string",
        "description": "",
        "optional": false,
        "name": "Device",
        "slug": "device"
      }, {
        "type": "date",
        "description": "",
        "optional": true,
        "name": "Since",
        "slug": "since"
      }],
      "name": "Fetch Data",
      "execution": "Asynchronous",
      "slug": "fetch-data",
      "permissions": {
        "data": ["sms"]
      }
    }],
    "slug": "icloud"
  }],
  "stream_endpoints": [{
    "host": "aschannel.reincubate.com",
    "protocol": "https",
    "uri": "/stream/"
  }]
}

list-subscriptions

El método de list-subscriptions proporciona a un cliente una lista de todas las cuentas y dispositivos suscritos, junto con sus estados.

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "service=<SERVICE>" \
    https://asmaster.reincubate.com/list-subscriptions/ -D -

Aquí está la misma llamada en formato wget , para referencia:

$ wget \
    --header 'Authorization: Token <TOKEN>' \
    --post-data="service=<SERVICE>" \
    https://asmaster.reincubate.com/list-subscriptions/ -qO -

Parámetros:

Servicio
Un identificador de servicio, como icloud

Respuesta

  • HTTP 200 Un diccionario JSON que contiene información de suscripción de cuenta y dispositivo
{
  "accounts": [
    {
      "status": "ok",
      "service": "icloud",
      "account_id": 133733,
      "devices": [
        {
          "status": "ok",
          "device_id": 2
        },
        {
          "status": "ok",
          "device_id": 3
        },
        {
          "status": "ok",
          "device_id": 4
        }
      ]
    }
  ]
}

Suscripción de cuenta y desuscripción.

La segunda parte de trabajar con asmaster es la suscripción a la cuenta. Se puede suscribir a una cuenta con el método de subscribe-account . Cuando se llama a esto, asmaster crea y almacena un token de autenticación interno, para que pueda continuar accediendo a la cuenta en el futuro sin las credenciales principales de la cuenta. Dependiendo del servicio que se esté utilizando, la vida útil del token puede variar de días a meses, y un canal informará a los clientes sobre y, dependiendo del servicio, cerca de su vencimiento. Una vez caducado, el resubscribe-account debe utilizarse para renovar la suscripción.

Cuando se llama subscribe-account , devolverá una lista de todos los dispositivos disponibles si la autenticación es exitosa. Sin embargo, el método de list-devices existe para realizar esta función para cuentas que ya están suscritas.

Las cuentas se pueden cancelar con el método de unsubscribe-account .

subscribe-account

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "service=<SERVICE>" \
    -d "username=<ACCOUNT>" \
    -d "password=<PASSWORD>" \
    https://asmaster.reincubate.com/subscribe-account/ -D -

Parámetros:

  • El servicio para interactuar con: como icloud
  • La cuenta para suscribirse a: like john.appleseed@reincubate.com
  • La contraseña para la cuenta: como joshua

Respuesta

La llamada volverá de una de varias maneras:

  • 201: Account registered Devuelve un account_id
{ "account_id": 1010
}
  • 429: Too many requests Indica que se han realizado demasiadas solicitudes para suscribirse a una cuenta dentro de la ventana de seguridad. La API hace esto para evitar intentos de inicio de sesión repetidos en las cuentas.
{ "message": "Too many subscriptions for the same account in the safety window.",
  "account_id": 1010,
  "success": false,
  "error": "asmaster-account-too-many-subscriptions"}
  • 409: MFA process required señales necesitan que el cliente llame a perform-2fa-challenge . Devuelve la lista de dispositivos de confianza y un account_id temporal
{ "message": "This account has Two Step Verification enabled, please select a device to challenge.",
  "data": {
    "trustedDevices": ["********12", "Renate's iPhone - iPhone 6s"],
  },
  "error": "2fa-required",
  "account_id": 1010
}
  • 400: Account already active Indica que la cuenta ya está suscrita.
{ "message": "You are already subscribed to receive content for this account.",
  "account_id": 1010,
  "success": false,
  "error": "asmaster-account-already-active"}

perform-2fa-challenge

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "account_id=<TEMP-ACCOUNT-ID>" \
    -d "device_id=<DEVICE-ID>" \
    https://asmaster.reincubate.com/perform-2fa-challenge/ -D -

Parámetros:

  • account_id
  • device_id

submit-2fa-challenge

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "account_id=<TEMP-ACCOUNT-ID>" \
    -d "code=<CODE>" \
    https://asmaster.reincubate.com/submit-2fa-challenge/ -D -

Parámetros:

  • account_id
  • code

Respuesta

{ "account_id": "1010"
}

resubscribe-account

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "account_id=<ACCOUNT-ID>" \
    -d "password=<PASSWORD>" \
    https://asmaster.reincubate.com/resubscribe-account/ -D -

Parámetros:

  • account_id
  • password

Tenga en cuenta que el parámetro de password es opcional. Si no está presente, la API intentará realizar una nueva suscripción utilizando la sesión existente. Esto fallará si la sesión ha caducado, pero podría tener éxito si la cuenta se marcó como inactiva debido a un error no relacionado con la sesión.

Respuesta

Respuesta:

  • 200 Cuenta renovada
  • 400 Bad account_id
  • 409 requiere un proceso de 409 MFA - similar a subscribe-account
  • 403 Otro error según los errores de inicio de sesión del servicio .

unsubscribe-account

Al cancelar la suscripción de una cuenta, se cancelará automáticamente la suscripción de cualquier dispositivo suscrito que le pertenezca.

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "account_id=<ACCOUNT-ID>" \
    https://asmaster.reincubate.com/unsubscribe-account/ -D -

Parámetros:

  • account_id

Respuesta

Respuesta:

  • 200 Cuentas desregistradas
  • 400 Bad account_id
{ "success": true
}

reset-subscription-since

El método de restablecer la reset-subscription-since restablece los metadatos de una cuenta y todos sus dispositivos cuando se realizó el último sondeo. La mayoría de los módulos de alimentación solo devolverán un delta de datos desde esta última fecha de sondeo. Como tal, al restablecerlo, un cliente puede asegurarse de obtener datos más antiguos durante la próxima encuesta.

Por ejemplo, si un cliente desea volver a obtener los datos de la última semana, podría utilizar este método en una cuenta, pasándolo una fecha 7 días antes.

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "account_id=<ACCOUNT-ID>" \
    -d "datetime=<DATETIME>" \
    https://asmaster.reincubate.com/reset-subscription-since/ -D -

Parámetros:

  • account_id
  • datetime La fecha y la hora para restablecer la ventana de alimentación a. El formato de fecha es según los estándares de la API .

Respuesta

{ "success": true
}

Suscripción y desuscripción de dispositivos.

Para registrar o anular el registro de dispositivos, los usuarios pueden utilizar los métodos de subscribe-device y unsubscribe-device .

list-devices

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "account_id=<ACCOUNT-ID>" \
    https://asmaster.reincubate.com/list-devices/ -D -

Parámetros:

  • account_id

Respuesta

  • 200 : Lista de dispositivos y otra información
{
  "devices": [
    {
      "ios_version": "10.2",
      "name": "iPhone 7 Plus",
      "colour": "1",
      "device_name": "Johnny's iP7 iOS10 Black",
      "latest-backup": "2017-01-31 22:06:06.000000",
      "model": "D111AP",
      "device_tag": "3d0d7e5fb2ce288813306e4d4636395e047a3d28",
      "serial": "ABC123BBBBBB",
      "device_id": 2
    },
    {
      "ios_version": "10.3.1",
      "name": "iPad Pro",
      "colour": "#e4e7e8",
      "device_name": "Johnny's other iPhone",
      "latest-backup": "2017-04-22 15:39:25.000000",
      "model": "J127AP",
      "device_tag": "b39bac0d347adfaf172527f97c3a5fa3df726a3a",
      "serial": "ABC123BBBBBB",
      "device_id": 3
    },
    {
      "ios_version": "10.3.1",
      "name": "iPhone 7 Plus",
      "colour": "1",
      "device_name": "Johnny's white iPhone",
      "latest-backup": "2017-04-13 21:08:47.000000",
      "model": "D111AP",
      "device_tag": "a49bfab36504be1bf563c1d1813b05efd6076717",
      "serial": "ABC123AAAAAA",
      "device_id": 4
    }
  ],
  "success": true
}
  • 429: Too many requests Indica que se han realizado demasiadas solicitudes para listar dispositivos dentro de la ventana de seguridad. La API hace esto para evitar el sondeo repetido de este mecanismo. Los clientes deben almacenar localmente en la memoria caché esta lista de dispositivos, y solo llamar al método cuando se espera un cambio en los dispositivos.

subscribe-device

Para suscribirse a un dispositivo, primero debe suscribirse la cuenta a la que pertenece.

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "account_id=<ACCOUNT-ID>" \
    -d "device_id=<DEVICE-ID>" \
    https://asmaster.reincubate.com/subscribe-device/ -D -

Parámetros:

  • account_id
  • device_id

Respuesta

{ "success": true
}

unsubscribe-device

Solicitud

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "device_id=<DEVICE-ID>" \
    https://asmaster.reincubate.com/unsubscribe-device/ -D -

Parámetros:

  • device_id

Respuesta

{ "success": true
}

Acceso a datos de suscripciones de cuentas y dispositivos

Una vez que se haya realizado una suscripción a una cuenta o una cuenta y sus dispositivos, la API establecerá automáticamente la frecuencia de sondeo y el momento más apropiados para la cuenta. Generará tareas (como se describe en asapi y las programará según corresponda. Los clientes de asmaster deben suscribirse a aschannel para recibir los resultados de la tarea a medida que se generan.

Para ver un ejemplo sobre cómo consumir datos desde un canal , consulte el modo de escucha de la biblioteca de muestra de código abierto.

¿Cómo podemos ayudar?

¡Nuestro equipo de soporte está aquí para ayudar!

Nuestro horario de atención es de lunes a viernes de 9 a.m. a 5 p.m. GMT. El tiempo es actualmente 8:49 PM GMT.

Intentamos responder todos los mensajes en un plazo de un día laboral.

Ir a la sección de soporte › Póngase en contacto con el equipo de la empresa. ›
Nuestro increíble equipo de soporte.

© 2008 - 2019 Reincubate Ltd. Todos los derechos reservados. Registrado en Inglaterra y Gales #5189175, VAT GB151788978. Reincubate® es una marca registrada. Términos y privacidad. Recomendamos la autenticación de múltiples factores. Construido con en Londres.