asmaster를 사용하여 데이터 구독 (v2)

업데이트 됨

개요

asmaster 는 클라우드에 저장된 계정 및 장치와 관련된 데이터를 구독하는 데 사용됩니다. 계정이나 장치에 가입하면 클라이언트는 aschannel을 통해 새로운 데이터가 사용 가능 해지면 자동으로 푸시됩니다.

asmaster를 사용 하는 일반적인 요청 흐름은 다음과 같습니다 .

  • list-services 서비스에서 필요한 서비스를 사용할 수 있는지 확인하십시오.
  • 잠재 신규 사용자의 계정이 이미 list-subscriptions 되지 않았는지 확인하십시오.
  • 가입 계정을 사용하여 계정에 subscribe-account
  • perform-2fa-challengesubmit-2fa-challenge 2FA 단계 완료
  • 기기 데이터가 중요한 경우 list-devices 를 호출하여 연결된 list-devices 를 검색합니다.
  • subscribe-device 사용하여 장치 subscribe-device
  • aschannel 에서 계정의 토큰이 만료되었거나 만료 되었다고 보고하는 경우 사용자에게 resubscribe-account
  • 사용자가 기기 또는 계정 모니터링을 중지하려면 unsubscribe-device 또는 unsubscribe-account

이 요청 흐름 전체에서 클라이언트는 aschannel 에서 데이터를 소비하는 프로세스를 유지 관리해야합니다.

방법 요약

서비스 관리 및보고

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 메소드를 사용하여 subscribe-account 할 수 있습니다. 이를 호출하면 asmaster 는 내부 인증 토큰을 생성하고 저장하므로 계정의 기본 자격 증명 없이는 앞으로도 계속해서 계정에 액세스 할 수 있습니다. 사용되는 서비스에 따라 토큰의 수명은 수개월에서 수개월까지 다양 할 수 있으며, 채널 에 따라 고객에게 서비스에 따라 만료일 근처에 알릴 수 있습니다. 만료되면 resubscribe-account 을 갱신하는 데 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 registeredaccount_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 를 호출 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 나쁜 account_id
  • 409 MFA 프로세스 필요 - subscribe-account 과 유사
  • 403 서비스 별 로그인 오류로 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 나쁜 account_id
{ "success": true
}

reset-subscription-since

reset-subscription-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
}

기기 가입 및 탈퇴

장치를 등록 또는 등록 해제하려면 사용자가 subscribe-deviceunsubscribe-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 시부 터 오후 5시 (그리니치 표준시)입니다. 시간은 현재 6:13 오후 GMT입니다.

우리는 1 일 이내에 모든 메시지에 답장하고자합니다.

지원 섹션으로 이동 › 엔터프라이즈 팀에 문의하십시오. ›
우리의 멋진 지원 팀

© 2008 - 2019 Reincubate Ltd. 판권 소유. 영국과 웨일즈에 등록 #5189175, VAT GB151788978. Reincubate®는 등록 상표입니다. 개인 정보 및 이용 약관. 우리는 2FA를 권장합니다. 런던에서 Built로 지어졌습니다.