Subscrevendo dados com asmaster (v2)

Atualizada

visão global

O asmaster é usado para assinar dados referentes a contas e dispositivos armazenados na nuvem. Ao inscrever-se em contas ou dispositivos, os clientes receberão automaticamente novos dados assim que estiverem disponíveis, por meio de aschannel .

Um fluxo de solicitação típico com asmaster poderia ser:

  • Confirme se os serviços necessários estão disponíveis com list-services
  • Confirme se a conta de um novo usuário em potencial ainda não está inscrita list-subscriptions
  • Inscrever-se em uma conta usando uma conta de subscribe-account
  • Conclua todas as etapas de 2FA com perform-2fa-challenge e submit-2fa-challenge
  • Se os dados do dispositivo forem importantes, chame list-devices para recuperar os dispositivos associados
  • Inscrever-se em um dispositivo usando o dispositivo de subscribe-device
  • Se o acesso ascendente indicar que o token da conta expirou ou está próximo da expiração, direcione o usuário para resubscribe-account
  • Se o usuário desejar interromper o monitoramento de seu dispositivo ou conta, ligue unsubscribe-device unsubscribe-account ou unsubscribe-account

Em todo esse fluxo de solicitação, o cliente deve manter um processo consumindo dados de aschannel .

Métodos de relance

Gerenciamento de serviços e relatórios

list-services

O método list-services retorna informações sobre os serviços disponíveis para o token de autenticação fornecido.

Pedido

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

Parâmetros:

  • Nenhum

Resposta

  • HTTP 200 Um dicionário JSON contendo informações de serviço disponíveis
{ "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

O método list-subscriptions fornece a um cliente uma lista de todas as contas e dispositivos inscritos, juntamente com seus status.

Pedido

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

Aqui está a mesma chamada no formato wget , para referência:

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

Parâmetros:

serviço
Um identificador de serviço, como o icloud

Resposta

  • HTTP 200 Um dicionário JSON contendo informações de conta e assinatura de 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
        }
      ]
    }
  ]
}

Assinatura de conta e cancelamento de assinatura

A segunda parte do trabalho com o asmaster é a assinatura da conta. Uma conta pode ser assinada com o método de subscribe-account . Quando isso é chamado, asmaster cria e armazena um token de autenticação interno, para que possa continuar a acessar a conta no futuro sem as credenciais primárias da conta. Dependendo do serviço que está sendo usado, a vida útil do token pode variar de dias a meses, e o aschannel informará os clientes sobre - e dependendo do serviço - próximo ao seu vencimento. Depois de expirado, o método de resubscribe-account de renovação de assinatura deve ser usado para renovar a assinatura.

Quando subscribe-account é chamada, ela retornará uma lista de todos os dispositivos disponíveis se a autenticação for bem-sucedida. No entanto, o método list-devices existe para executar essa função para contas que já estão inscritas.

As contas podem ser canceladas com o método da unsubscribe-account .

subscribe-account

Pedido

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

  • O serviço para interagir com: como o icloud
  • A conta para se inscrever: como john.appleseed@reincubate.com
  • A senha da conta: como joshua

Resposta

A chamada retornará de várias maneiras:

  • 201: Account registered Retorna um account_id
{ "account_id": 1010
}
  • 429: Too many requests Indica que muitas solicitações foram feitas para assinar uma conta na janela de segurança. A API faz isso para impedir tentativas de login repetidas nas contas.
{ "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 Sinais precisam que o cliente chame perform-2fa-challenge . Retorna a lista de dispositivos confiáveis e um account_id temporário
{ "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 a conta já está inscrita.
{ "message": "You are already subscribed to receive content for this account.",
  "account_id": 1010,
  "success": false,
  "error": "asmaster-account-already-active"}

perform-2fa-challenge

Pedido

$ 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

Pedido

$ 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

Resposta

{ "account_id": "1010"
}

resubscribe-account

Pedido

$ 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

Note que o parâmetro password é opcional. Se não estiver presente, a API tentará executar uma nova assinatura usando a sessão existente. Isso falhará se a sessão expirar, mas poderá ser bem-sucedida se a conta estiver marcada como inativa devido a um erro não relacionado à sessão.

Resposta

Resposta:

  • 200 Conta atualizada
  • 400 account_id inválido
  • 409 Processo de MFA necessário - semelhante à subscribe-account
  • 403 Outro erro por serviço registra erros .

unsubscribe-account

Cancelar a inscrição de uma conta cancelará automaticamente todos os dispositivos inscritos que pertencerem a ela.

Pedido

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

Parâmetros:

  • account_id

Resposta

Resposta:

  • Conta 200 desregistrada
  • 400 account_id inválido
{ "success": true
}

reset-subscription-since

O método reset-subscription-since redefine os metadados de uma conta e todos os seus dispositivos quando ela foi pesquisada pela última vez. A maioria dos módulos de feed retornará apenas um delta de dados desde a última data de pesquisa. Assim, ao redefini-lo, um cliente pode garantir que obtenha dados mais antigos durante a próxima pesquisa.

Por exemplo, se um cliente desejar obter os dados da última semana novamente, eles poderão usar esse método em uma conta, passando uma data sete dias antes.

Pedido

$ 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 A data e hora para redefinir a janela do feed. O formato da data é conforme os padrões da API .

Resposta

{ "success": true
}

Assinatura e cancelamento de assinatura do dispositivo

Para registrar ou cancelar o registro de dispositivos, os usuários podem usar os métodos de subscribe-device e de unsubscribe-device .

list-devices

Pedido

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

Parâmetros:

  • account_id

Resposta

  • 200 : lista de dispositivos e outras informações
{
  "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 excesso Indica que foram feitos muitos pedidos para listar dispositivos dentro da janela de segurança. A API faz isso para impedir a repetição repetida desse mecanismo. Os clientes devem armazenar localmente em cache esta lista de dispositivos e só chamar o método quando for esperada uma alteração nos dispositivos.

subscribe-device

Para se inscrever em um dispositivo, a conta à qual ele pertence deve primeiro ser inscrita.

Pedido

$ 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

Resposta

{ "success": true
}

unsubscribe-device

Pedido

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

Parâmetros:

  • device_id

Resposta

{ "success": true
}

Acessando dados de assinaturas de conta e dispositivo

Depois que uma inscrição for feita em uma conta ou em uma conta e seus dispositivos, a API estabelecerá automaticamente a frequência e o tempo de pesquisa mais apropriados para a conta. Ele irá gerar tarefas (conforme descrito no asapi e agendá-las conforme apropriado. Os clientes do asmaster devem assinar o aschannel para receber os resultados da tarefa à medida que são gerados.

Para obter um exemplo sobre como consumir dados de um canal , consulte o modo ouvinte da biblioteca de amostras de código aberto.

Como podemos ajudar?

Nossa equipe de suporte está aqui para ajudar!

Nosso horário de atendimento é de segunda a sexta, das 9h às 17h GMT. A hora é atualmente 5:15 PM GMT.

Nosso objetivo é responder a todas as mensagens dentro de um dia útil.

Vá para a seção de apoio › Entre em contato com a equipe da empresa ›
Nossa equipe de suporte incrível

© 2008 - 2019 Reincubate Ltd. Todos os direitos reservados. Registrado na Inglaterra e no País de Gales #5189175, VAT GB151788978. Reincubate® é uma marca registrada. Privacidade e Termos. Recomendamos 2FA. Construído com em Londres.