Подписка на данные с asmaster (v2)

обновленный

обзор

asmaster используется для подписки на данные, относящиеся к учетным записям и устройствам, хранящимся в облаке. Подписываясь на учетные записи или устройства, клиенты будут автоматически получать новые данные, как только они станут доступны, через канал .

Типичный поток запросов с asmaster может быть:

  • Подтвердите, что необходимые сервисы доступны с помощью list-services
  • Подтвердите, что учетная запись потенциального нового пользователя еще не подписана на рассылку по list-subscriptions
  • Подписаться на аккаунт, используя subscribe-account
  • Завершите все шаги perform-2fa-challenge с помощью perform-2fa-challenge и submit-2fa-challenge
  • Если данные устройства важны, вызовите list-devices для получения связанных устройств
  • Подпишитесь на устройство, используя subscribe-device
  • Если aschannel сообщает, что срок действия токена учетной записи истек или почти истек, попросите пользователя resubscribe-account
  • Если пользователь желает прекратить мониторинг своего устройства или учетной записи, позвоните по unsubscribe-device или unsubscribe-account

На протяжении всего этого потока запросов клиент должен поддерживать процесс, потребляющий данные из канала .

Методы с первого взгляда

Управление услугами и отчетность

list-services

Метод list-services возвращает информацию об услугах, доступных для данного токена аутентификации.

Запрос

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

Параметры:

  • Никто

отклик

  • HTTP 200 Словарь JSON, содержащий доступную служебную информацию
{ "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

Метод list-subscriptions предоставляет клиенту список всех подписанных учетных записей и устройств вместе с их статусами.

Запрос

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

Вот тот же вызов в формате wget , для справки:

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

Параметры:

оказание услуг
Идентификатор службы, такой как icloud

отклик

  • HTTP 200 Словарь JSON, содержащий информацию об учетной записи и подписке устройства
{
  "accounts": [
    {
      "status": "ok",
      "service": "icloud",
      "account_id": 133733,
      "devices": [
        {
          "status": "ok",
          "device_id": 2
        },
        {
          "status": "ok",
          "device_id": 3
        },
        {
          "status": "ok",
          "device_id": 4
        }
      ]
    }
  ]
}

Подписка на аккаунт и отмена подписки

Вторая часть работы с asmaster - подписка на аккаунт. На учетную запись можно подписаться методом subscribe-account . Когда это вызывается, asmaster создает и сохраняет внутренний токен аутентификации, чтобы он мог продолжать доступ к учетной записи в будущем без основных учетных данных учетной записи. В зависимости от используемой услуги срок действия токена может варьироваться от нескольких дней до нескольких месяцев, и aschannel будет информировать клиентов о и - в зависимости от услуги - о ее истечении. После истечения срока действия метод resubscribe-account подписки должен использоваться для возобновления подписки.

Когда вызывается subscribe-account , она вернет список всех доступных устройств, если аутентификация прошла успешно. Однако существует метод list-devices для выполнения этой функции для учетных записей, которые уже подписаны.

Отписаться от аккаунтов можно с помощью метода unsubscribe-account .

subscribe-account

Запрос

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

Параметры:

  • Сервис для взаимодействия: как icloud
  • Аккаунт для подписки: например, john.appleseed@reincubate.com
  • Пароль для учетной записи: как joshua

отклик

Вызов вернется одним из следующих способов:

  • 201: Account registered Возвращает account_id
{ "account_id": 1010
}
  • 429: Too many requests Указывает, что было сделано слишком много запросов на подписку на учетную запись в окне безопасности. API делает это для предотвращения повторных попыток входа в учетные записи.
{ "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 Сигналы нужны клиенту для вызова perform-2fa-challenge . Возвращает список доверенных устройств и временный 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 Указывает, что учетная запись уже подписана.
{ "message": "You are already subscribed to receive content for this account.",
  "account_id": 1010,
  "success": false,
  "error": "asmaster-account-already-active"}

perform-2fa-challenge

Запрос

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

Параметры:

  • account_id
  • device_id

submit-2fa-challenge

Запрос

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

Параметры:

  • account_id
  • code

отклик

{ "account_id": "1010"
}

resubscribe-account

Запрос

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

Параметры:

  • account_id
  • password

Обратите внимание, что параметр password является необязательным. Если он отсутствует, API попытается выполнить повторную подписку, используя существующий сеанс. Это не удастся, если сеанс истек, но может быть успешным, если учетная запись была отмечена как неактивная из-за ошибки, не связанной с сеансом.

отклик

Отклик:

  • 200 Аккаунт обновлен
  • 400 Bad account_id
  • Требуется процесс 409 MFA - похоже на subscribe-account
  • 403 Другая ошибка в соответствии с ошибками входа службы .

unsubscribe-account

Отказ от подписки на аккаунт автоматически отменяет подписку на любые подписанные устройства, которые принадлежат ей.

Запрос

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

Параметры:

  • account_id

отклик

Отклик:

  • 200 Аккаунт снят с регистрации
  • 400 Bad account_id
{ "success": true
}

reset-subscription-since

Метод reset-subscription-since Since сбрасывает метаданные учетной записи и всех ее устройств на момент последнего опроса. Большинство модулей каналов будут возвращать только дельту данных с момента последнего опроса. Таким образом, сбросив его, клиент может убедиться, что он получит более старые данные во время следующего опроса.

Например, если клиент желает снова получить данные за последнюю неделю, он может использовать этот метод для учетной записи, передав ей дату за 7 дней.

Запрос

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

Параметры:

  • account_id
  • datetime Дата и время, когда нужно сбросить окно канала. Формат даты соответствует стандартам API .

отклик

{ "success": true
}

Устройство подписки и отписки

Чтобы зарегистрировать или отменить регистрацию устройств, пользователи могут использовать методы unsubscribe-device subscribe-device и unsubscribe-device .

list-devices

Запрос

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

Параметры:

  • account_id

отклик

  • 200 : список устройств и другая информация
{
  "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 Указывает, что было сделано слишком много запросов для перечисления устройств в окне безопасности. API делает это, чтобы предотвратить повторный опрос этого механизма. Клиенты должны локально кэшировать этот список устройств и вызывать метод только тогда, когда ожидается изменение устройств.

subscribe-device

Чтобы подписаться на устройство, необходимо сначала подписаться на учетную запись, к которой оно принадлежит.

Запрос

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

Параметры:

  • account_id
  • device_id

отклик

{ "success": true
}

unsubscribe-device

Запрос

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

Параметры:

  • device_id

отклик

{ "success": true
}

Доступ к данным из учетной записи и устройства подписок

После подписки на учетную запись или на учетную запись и ее устройства API автоматически установит наиболее подходящую частоту и время опроса для учетной записи. Он будет генерировать задачи (как описано в asapi и планировать их соответствующим образом. Клиенты asmaster должны подписаться на aschannel, чтобы получать результаты задач по мере их генерирования.

Пример использования данных из aschannel см. В режиме прослушивания библиотеки примеров с открытым исходным кодом.

Как мы можем помочь?

Наша служба поддержки здесь, чтобы помочь!

Наш офис работает с понедельника по пятницу с 9:00 до 17:00 по Гринвичу. Время в настоящее время 2:25 ДП с GMT.

Мы стремимся отвечать на все сообщения в течение одного рабочего дня.

Перейти в раздел поддержки › Связаться с командой предприятия ›
Наша отличная команда поддержки

© 2008 - 2019 Reincubate Ltd. Все права защищены. Зарегистрировано в Англии и Уэльсе #5189175, VAT GB151788978. Reincubate® является зарегистрированным товарным знаком. Защита & Условия. Мы рекомендуем 2FA. Построен с в Лондоне.