S'abonner aux données avec asmaster (v2)

Mis à jour

Vue d'ensemble

asmaster est utilisé pour s'abonner aux données relatives aux comptes et aux appareils stockés sur le cloud. En s'abonnant à des comptes ou à des appareils, les clients se verront automatiquement transmettre de nouvelles données dès qu'elles seront disponibles, via aschannel .

Un flux de demandes typique avec asmaster peut être:

  • Confirmez que les services requis sont disponibles avec les list-services
  • Vérifiez que le compte d'un nouvel utilisateur potentiel n'est pas déjà abonné avec des abonnements à la list-subscriptions
  • Abonnez-vous à un compte en utilisant subscribe-account
  • Effectuez toutes les étapes 2FA avec perform-2fa-challenge et submit-2fa-challenge
  • Si les données du périphérique sont importantes, appelez list-devices pour récupérer les périphériques associés.
  • Abonnez-vous à un appareil en utilisant subscribe-device
  • Si aschannel signale que le jeton du compte a expiré ou est sur le point de l'expiration, resubscribe-account à l'utilisateur de se resubscribe-account
  • Si l'utilisateur souhaite cesser de surveiller son appareil ou son compte, appelez unsubscribe-device ou unsubscribe-account

Tout au long de ce flux de demandes, le client doit gérer un processus consommant des données aschannel .

Méthodes en un coup d'œil

Gestion de service et reporting

list-services

La méthode list-services renvoie des informations sur les services disponibles pour le jeton d'authentification donné.

Demande

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

Paramètres:

  • Aucun

Réponse

  • HTTP 200 Un dictionnaire JSON contenant les informations de service disponibles
{ "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

La méthode list-subscriptions fournit à un client une liste de tous les comptes et périphériques souscrits, ainsi que leurs statuts.

Demande

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

Voici le même appel au format wget , pour référence:

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

Paramètres:

un service
Un identifiant de service, tel que icloud

Réponse

  • HTTP 200 Un dictionnaire JSON contenant des informations sur les abonnements aux comptes et aux appareils
{
  "accounts": [
    {
      "status": "ok",
      "service": "icloud",
      "account_id": 133733,
      "devices": [
        {
          "status": "ok",
          "device_id": 2
        },
        {
          "status": "ok",
          "device_id": 3
        },
        {
          "status": "ok",
          "device_id": 4
        }
      ]
    }
  ]
}

Abonnement et désabonnement de compte

La deuxième partie du travail avec asmaster est l’abonnement au compte. Un compte peut être souscrit avec la méthode subscribe-account . Lorsque cela est appelé, asmaster crée et stocke un jeton d'authentification interne, de sorte qu'il puisse continuer à accéder au compte à l'avenir sans les informations d'identification principales du compte. En fonction du service utilisé, la durée de vie des jetons peut varier de quelques jours à plusieurs mois. Aschannel informera les clients de la date d' expiration de celui- ci et, en fonction du service. Une fois expiré, la méthode resubscribe-account doit être utilisée pour renouveler l'abonnement.

Lorsque subscribe-account est appelé, une liste de tous les périphériques disponibles sera renvoyée si l'authentification réussit. Toutefois, la méthode list-devices permet d’exécuter cette fonction pour les comptes déjà abonnés.

Les comptes peuvent être désabonnés à l'aide de la méthode unsubscribe-account .

subscribe-account

Demande

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

Paramètres:

  • Le service avec icloud interagir: comme icloud
  • Le compte john.appleseed@reincubate.com souhaitez vous abonner: comme john.appleseed@reincubate.com
  • Le mot de passe pour le compte: comme joshua

Réponse

L'appel retournera de l'une des manières suivantes:

  • 201: Account registered Retourne un account_id
{ "account_id": 1010
}
  • 429: Too many requests Indique que trop de demandes ont été faites pour s'abonner à un compte dans la fenêtre de sécurité. L’API évite ainsi les tentatives de connexion répétées à des comptes.
{ "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 signaux doivent être 409: MFA process required par le client pour appeler perform-2fa-challenge . Renvoie la liste des périphériques sécurisés et un account_id temporaire account_id
{ "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 Indique que le compte est déjà abonné.
{ "message": "You are already subscribed to receive content for this account.",
  "account_id": 1010,
  "success": false,
  "error": "asmaster-account-already-active"}

perform-2fa-challenge

Demande

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

Paramètres:

  • account_id
  • device_id

submit-2fa-challenge

Demande

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

Paramètres:

  • account_id
  • code

Réponse

{ "account_id": "1010"
}

resubscribe-account

Demande

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

Paramètres:

  • account_id
  • password

Notez que le paramètre password est facultatif. S'il n'est pas présent, l'API tentera d'effectuer une réabonnement à l'aide de la session existante. Cela échouera si la session a expiré, mais pourrait réussir si le compte a été marqué comme inactif en raison d'une erreur sans rapport avec la session.

Réponse

Réponse:

  • 200 compte rafraîchi
  • 400 Bad account_id
  • Processus 409 MFA requis - similaire à subscribe-account
  • 403 Autre erreur selon les erreurs de connexion du service .

unsubscribe-account

La désinscription d'un compte entraînera automatiquement la désabonnement des appareils souscrits qui lui appartiennent.

Demande

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

Paramètres:

  • account_id

Réponse

Réponse:

  • 200 compte désenregistré
  • 400 Bad account_id
{ "success": true
}

reset-subscription-since

La méthode reset-subscription-since réinitialise les métadonnées d'un compte et de tous ses périphériques lors de la dernière interrogation. La plupart des modules de flux ne renverront qu'un delta de données depuis cette dernière date d'interrogation. Ainsi, en le réinitialisant, un client peut s’assurer qu’il récupérera des données plus anciennes lors du prochain sondage.

Par exemple, si un client souhaite récupérer les données de la semaine précédente, il peut utiliser cette méthode pour un compte, en lui attribuant une date 7 jours avant.

Demande

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

Paramètres:

  • account_id
  • datetime Date et heure auxquelles réinitialiser la fenêtre de flux. Le format de la date est conforme aux normes de l' API .

Réponse

{ "success": true
}

Abonnement et désabonnement d'appareils

Pour enregistrer ou unsubscribe-device des périphériques, les utilisateurs peuvent utiliser les méthodes subscribe-device et unsubscribe-device .

list-devices

Demande

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

Paramètres:

  • account_id

Réponse

  • 200 : liste des appareils et autres informations
{
  "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 Indique que trop de demandes ont été faites pour répertorier les périphériques dans la fenêtre de sécurité. L’API évite ainsi l’interrogation répétée de ce mécanisme. Les clients doivent localement mettre en cache cette liste de périphériques et appeler la méthode uniquement lorsqu'un changement de périphériques est attendu.

subscribe-device

Pour souscrire à un appareil, le compte auquel il appartient doit d'abord être souscrit.

Demande

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

Paramètres:

  • account_id
  • device_id

Réponse

{ "success": true
}

unsubscribe-device

Demande

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

Paramètres:

  • device_id

Réponse

{ "success": true
}

Accéder aux données des abonnements aux comptes et aux appareils

Une fois qu'un abonnement à un compte ou à un compte et à ses périphériques a été créé, l'API établira automatiquement la fréquence et le délai d'interrogation les plus appropriés pour le compte. Il générera des tâches (comme décrit dans asapi et les planifie selon le cas. Les clients d’ asmaster doivent s’abonner à aschannel pour recevoir les résultats de la tâche à mesure qu’ils sont générés.

Pour un exemple d'utilisation des données aschannel , reportez-vous au mode d'écoute de la bibliothèque exemple Open Source.

Comment pouvons nous aider?

Notre équipe de support est là pour vous aider!

Nos bureaux sont ouverts du lundi au vendredi, de 9 h à 17 h GMT. L’heure est actuellement 2:33 Matin GMT.

Notre objectif est de répondre à tous les messages en un jour ouvrable.

Aller à la section support › Contacter l'équipe de l'entreprise ›
Notre superbe équipe de support

© 2008 - 2019 Reincubate Ltd. Tous droits réservés. Enregistré en Angleterre et au Pays de Galles #5189175, VAT GB151788978. Reincubate® est une marque déposée. Confidentialité et modalités. Nous recommandons l'authentification multi-facteurs. Construit avec à Londres.