Iscrizione per i dati con asmaster (v2)

aggiornato

Panoramica

asmaster viene utilizzato per iscriversi ai dati relativi agli account e ai dispositivi memorizzati nel cloud. Sottoscrivendo account o dispositivi, i client verranno automaticamente trasferiti nuovi dati una volta disponibili, tramite aschannel .

Un tipico flusso di richieste con asmaster potrebbe essere:

  • Confermare che i servizi richiesti sono disponibili con list-services
  • Conferma che l'account di un potenziale nuovo utente non è già stato sottoscritto con le iscrizioni alla list-subscriptions
  • Iscriviti a un account utilizzando l'account di subscribe-account
  • Completa eventuali passaggi 2FA con perform-2fa-challenge e submit-2fa-challenge
  • Se i dati del dispositivo sono importanti, chiamare l' list-devices per recuperare i dispositivi associati
  • Iscriviti a un dispositivo utilizzando il dispositivo subscribe-device
  • Se l' aschannel segnala che il token dell'account è scaduto o è prossimo alla scadenza, indirizza l'utente a resubscribe-account
  • Se l'utente desidera interrompere il monitoraggio del proprio dispositivo o account, chiama unsubscribe-device account di unsubscribe-device unsubscribe-account o di unsubscribe-account

Durante questo flusso di richieste il client dovrebbe mantenere un processo che utilizza i dati da aschannel .

Metodi a colpo d'occhio

Gestione del servizio e reporting

list-services

Il metodo list-services restituisce informazioni sui servizi disponibili per il token di autenticazione specificato.

Richiesta

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

parametri:

  • Nessuna

Risposta

  • HTTP 200 Un dizionario JSON contenente le informazioni sul servizio disponibili
{ "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

Il metodo list-subscriptions fornisce a un client un elenco di tutti gli account e dispositivi sottoscritti, insieme ai loro stati.

Richiesta

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

Ecco la stessa chiamata nel formato wget , per riferimento:

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

parametri:

servizio
Un identificatore di servizio, come ad esempio icloud

Risposta

  • HTTP 200 Un dizionario JSON contenente informazioni sull'iscrizione all'account e al 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
        }
      ]
    }
  ]
}

Iscrizione e disiscrizione dell'account

La seconda parte del lavoro con asmaster è l'abbonamento all'account. Un account può essere sottoscritto con il metodo subscribe-account . Quando viene chiamato, asmaster crea e memorizza un token di autenticazione interno, in modo che possa continuare ad accedere all'account in futuro senza le credenziali principali dell'account. A seconda del servizio utilizzato, la durata del token può variare da giorni a mesi e l' aschannel informerà i clienti e, a seconda del servizio, quasi alla scadenza. Una volta scaduto, è necessario utilizzare il metodo del resubscribe-account per rinnovare l'abbonamento.

Quando viene chiamato l' subscribe-account , viene restituito un elenco di tutti i dispositivi disponibili se l'autenticazione ha esito positivo. Tuttavia, esiste il metodo list-devices per eseguire questa funzione per gli account già sottoscritti.

Gli account possono essere annullati con il metodo unsubscribe-account dell'iscrizione.

subscribe-account

Richiesta

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

parametri:

  • Il servizio per interagire con: come icloud
  • L'account per iscriversi a: like john.appleseed@reincubate.com
  • La password per l'account: come joshua

Risposta

La chiamata verrà restituita in uno dei seguenti modi:

  • 201: Account registered restituisce un account_id
{ "account_id": 1010
}
  • 429: Too many requests Indica che troppe richieste sono state fatte per iscriversi a un account all'interno della finestra di sicurezza. L'API esegue questa operazione per impedire tentativi ripetuti di accesso agli account.
{ "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 segnali richiedono al client di chiamare perform-2fa-challenge . Restituisce un elenco di dispositivi affidabili e un account_id temporaneo
{ "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 che l'account è già iscritto.
{ "message": "You are already subscribed to receive content for this account.",
  "account_id": 1010,
  "success": false,
  "error": "asmaster-account-already-active"}
  • 403: Bad credentials errate Altro errore come da errori di accesso al servizio .

perform-2fa-challenge

Richiesta

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

parametri:

  • account_id
  • device_id

submit-2fa-challenge

Richiesta

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

parametri:

  • account_id
  • code

Risposta

{ "account_id": "1010"
}

resubscribe-account

Richiesta

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

parametri:

  • account_id
  • password

Si noti che il parametro password è facoltativo. Se non è presente, l'API tenterà di eseguire una riscrittura utilizzando la sessione esistente. Ciò non riuscirà se la sessione è scaduta, ma potrebbe riuscire se l'account è stato contrassegnato come non attivo a causa di un errore non correlato alla sessione.

Risposta

Risposta:

  • 200 Account aggiornato
  • 400 Bad account_id
  • 409 richiesto un processo 409 MFA, simile subscribe-account di subscribe-account
  • 403 Altro errore come da errori di accesso al servizio .

unsubscribe-account

L'annullamento della sottoscrizione di un account annulla automaticamente l'iscrizione ai dispositivi sottoscritti che appartengono ad esso.

Richiesta

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

parametri:

  • account_id

Risposta

Risposta:

  • 200 Account cancellato
  • 400 Bad account_id
{ "success": true
}

reset-subscription-since

Il metodo reset-subscription-since ripristina i metadati per un account e tutti i suoi dispositivi su quando è stato effettuato l'ultimo polling. La maggior parte dei moduli di feed restituirà solo un delta di dati a partire da questa ultima data del sondaggio. Pertanto, ripristinandolo, un client può assicurarsi che inviino dati più vecchi durante il successivo sondaggio.

Ad esempio, se un cliente desidera ottenere nuovamente i dati della scorsa settimana, potrebbe utilizzare questo metodo su un account, passandogli una data 7 giorni prima.

Richiesta

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

parametri:

  • account_id
  • datetime Data e ora per reimpostare la finestra del feed su. Il formato della data è conforme agli standard API .

Risposta

{ "success": true
}

Sottoscrizione e annullamento della sottoscrizione

Per registrare o unsubscribe-device registrazione dei dispositivi, gli utenti possono utilizzare i metodi subscribe-device e unsubscribe-device .

list-devices

Richiesta

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

parametri:

  • account_id

Risposta

  • 200 : elenco dei dispositivi e altre informazioni
{
  "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 che sono state fatte troppe richieste per elencare i dispositivi all'interno della finestra di sicurezza. L'API esegue questa operazione per impedire il ripetuto polling di questo meccanismo. I client devono memorizzare nella cache questo elenco di dispositivi e chiamare il metodo solo quando è prevista una modifica dei dispositivi.

subscribe-device

Per iscriversi a un dispositivo, l'account a cui appartiene deve essere prima sottoscritto.

Richiesta

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

parametri:

  • account_id
  • device_id

Risposta

{ "success": true
}

unsubscribe-device

Richiesta

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

parametri:

  • device_id

Risposta

{ "success": true
}

Accesso ai dati dalle sottoscrizioni di account e dispositivi

Una volta effettuato l'abbonamento a un account o a un account e ai suoi dispositivi, l'API stabilirà automaticamente la frequenza e la tempistica di polling più appropriate per l'account. Genererà compiti (come descritto in asapi e li pianificherà in base alle esigenze. I clienti di asmaster devono iscriversi ad aschannel per ricevere i risultati dell'attività man mano che vengono generati.

Per un esempio su come utilizzare i dati da aschannel , vedere la modalità listener della libreria di campioni Open Source.

Come possiamo aiutare?

Il nostro team di supporto è qui per aiutarti!

I nostri orari di ufficio sono dal lunedì al venerdì, dalle 9:00 alle 17:00 GMT. L'ora è attualmente 1:32 AM GMT.

Miriamo a rispondere a tutti i messaggi entro un giorno lavorativo.

Vai alla sezione di supporto › Contatta il team aziendale ›
Il nostro fantastico team di supporto

© 2008 - 2019 Reincubate Ltd. Tutti i diritti riservati. Registrato in Inghilterra e Galles #5189175, VAT GB151788978. Reincubate® è un marchio registrato. Termini e Condizioni. Raccomandiamo 2FA. Costruito con a Londra.