시작하기

업데이트 됨

ricloud V3 API를 사용하려면, 먼저해야 할 연락 설정에 조직. 이 작업이 완료되면 API에 대한 액세스 권한을 부여하는 초기 key_token 이 있어야합니다.

이 섹션의 API 호출은 cURL을 사용하여 수행되지만 ricloud-py 와 동일한 호출로 쉽게 대체 할 수 있습니다.

조직보기

먼저, 귀하의 조직을 간략하게 살펴 보겠습니다.

curl 'https://ricloud-api.reincubate.com/organisation' \
  -H 'Authorization: Token <your key_token>'

아래의 것과 비슷한 응답을 보게됩니다. HTTP 401 응답을 Authorization 경우 Authorization 헤더에서 제공 한 key_token 값을 확인하십시오.

{
    "id": 1,
    "resource": "organisation",
    "name": "Getting started",
    "slug": "getting-started",
    "permissions": {
        "id": 1,
        "resource": "organisation_permissions",
        "identifier": "default",
        "scopes": {
            "source_type:icloud.*": [],
            "task_type:*": [],
            "data_type:icloud.account.info": [],
        },
        "date_created": "2018-11-22T12:59:57.168354Z"
    },
    "storage_configs": [],
    "storage_config_default": null,
    "webhook_configs": [],
    "webhook_config_default": null,
    "state": "unconfigured",
    "date_created": "2018-11-22T12:59:57.016467Z"
}

여기에서 조직에 대한 몇 가지 정보를 볼 수 있습니다.

  • permissions 권한은 조직의 기본 사용 permissions 표시합니다.
  • storage_configsstorage_config_default 는 아직 설정하지 않았으므로 비어 있습니다.
  • 동일한 이유로 webhook_configswebhook_config_default 도 비어 있습니다.
  • state 는 유효한 저장 장치 구성의 부족을 반영하여 unconfigured 됩니다.

나중에 API를 통해 서비스에 액세스 할 수 없으므로 나중에 구성 단계로 돌아갑니다.

이제 귀하의 조직이 운영되고 있음을 확인 했으므로 iCloud 계정에 액세스 해보십시오.

세션 설정하기

세션은 소스에 대한 액세스를 나타냅니다. iCloud 계정 소스의 경우, API는 Apple iCloud 서비스와의 세션을 생성하기 위해 계정에 로그인해야합니다.

사용자 만들기

세션을 설정하려면 먼저 어떤 최종 사용자가 소스에 액세스할지 정의하기 위해 사용자를 만들어야합니다. 이는 API의 세션 관리 및 데이터 보안에 도움이됩니다.

curl 'https://ricloud-api.reincubate.com/users' \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "identifier": "<some identifier for the user your system will recognise>",
}'

응답에는 다음 호출에 필요한 사용자 ID가 포함됩니다.

{
  "id": "1",
  "resource": "user",
  "organisation": "1",
  "key": "1",
  "identifier": "<your user identifier>",
  "state": "active",
  "date_created": "2018-11-22T13:49:37.215516Z"
}

세션 만들기

curl 'https://ricloud-api.reincubate.com/sessions' \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "source": {
    "user": "1",
    "type": "icloud.account",
    "identifier": "<iCloud account username>"
  },
  "payload": {
    "password": "<iCloud account password>"
  }
}'

응답에는 초기에 pending 상태 인 세션 리소스와 API가 타사 서비스와의 통신 설정 과정을 거치게됩니다. 이 경우 iCloud에 액세스 할 수있게됩니다.

{
  "id": "ed855b07-f72b-4983-ac1d-980fafee8a0b",
  "resource": "session",
  "organisation": "1",
  "user": "1",
  "source": "1",
  "state": "pending",
  "error": null,
  "date_created": "2018-11-22T13:50:12.628776Z",
  "date_expired": null
}

검색 호출을 통해 세션의 상태를 확인할 수 있습니다.

curl 'https://ricloud-api.reincubate.com/sessions/ed855b07-f72b-4983-ac1d-980fafee8a0b' \
  -H 'Authorization: Token <your key_token>'

상태가 failed 하면 초기화 프로세스 중에 문제가 발생합니다. error 대한 자세한 내용은 error 속성 값을 확인하십시오.

계정에서 2FA를 사용하는 경우 발생한 오류는 code-required 가능성이 매우 높으며 기기 중 하나에서 2FA 프로세스를 묻는 메시지가 표시됩니다. 단순히 단계 (1)에서 다시 전화를 걸면 이번에는 페이로드에 2FA 코드가 포함됩니다.

curl 'https://ricloud-api.reincubate.com/sessions' \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "source": {
    "user": "1",
    "type": "icloud.account",
    "identifier": "<iCloud account username>"
  },
  "payload": {
    "password": "<iCloud account password>"
    "code": "<2FA code>"
  }
}'

다른 오류가 발생하면 오류 섹션에서 자세한 내용을 확인하십시오.

상태가 active 되면 세션에서 소스에서 데이터 및 파일을 검색 할 준비가됩니다. 그러나 이전에 보았 듯이 조직에서 아직이 데이터를 수신하도록 구성되어 있지 않아 다음 단계로 넘어갑니다.

데이터 및 파일 검색

API가 소스에서 데이터를 가져 오기 시작하기 전에 데이터를 게시 할 위치를 알아야합니다. API는 현재 Google Cloud StorageAmazon S3 (AWS) 저장 용량 버킷에 게시하는 것을 지원하며 조직의 저장 용량 구성을 통해 구성해야합니다. 스토리지 구성 설정 문서에 설명 된 단계에 따라 API와 함께 사용할 준비가 된 버킷을 가져옵니다.

데이터 폴링 만들기

iCloud에서 검색 할 수있는 가장 간단한 데이터 집합은 몇 가지 기본적인 계정 정보입니다. 필요한 것은 활성 세션의 ID와 복구하려는 데이터에 대한 지정자입니다.

curl https://ricloud-api.reincubate.com/polls \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "session": "ed855b07-f72b-4983-ac1d-980fafee8a0b",
  "type": "data",
  "payload": {
    "data_types": ["callkit.calls"],
  }
}'

위의 호출에서 callkit.calls 데이터 유형을 지정했지만 키에 다른 데이터 유형에 대한 권한이 있거나 다른 유형의 데이터를 검색하려는 경우 필요에 따라 대체하십시오.

이것은 폴 자원을 리턴합니다. 백그라운드에서 API는이 정보를 검색하는 데 필요한 실제 작업을 수행하는 작업도 생성했습니다.이 작업은 이전에 세션을 설정하기 위해 만들어졌습니다. 작업 ID는 tasks 속성 아래에 표시됩니다.

{
  "id": "f1447e76-59f1-486b-942f-6b90e3570c63",
  "resource": "poll",
  "organisation": "1",
  "key": "1",
  "user": "1",
  "source": "1",
  "session": "ed855b07-f72b-4983-ac1d-980fafee8a0b",
  "type": "data",
  "tasks_pending": [],
  "tasks_processing": ["6bdb82ad-28bf-4aad-ab2c-b4952a7aa3eb"],
  "tasks_completed": [],
  "results": [],
  "state": "processing",
  "date_created": "2018-11-22T14:20:52.211618Z",
  "date_started": "2018-11-22T14:20:52.731838Z",
  "date_completed": null
}

또한이 시점에서 비어있는 results 속성을 주목하십시오. 여기서 우리는 작업에서 발행 된 데이터의 ID를보기 시작할 것입니다.

이제 처리가 완료되고 설문 조사의 상태가 succeeded 때까지 기다리고 싶습니다.

결과 정보 검색

이는 설문 조사의 results 속성을 보면 쉽게 수행 할 수 있습니다.

curl 'https://ricloud-api.reincubate.com/polls/f1447e76-59f1-486b-942f-6b90e3570c63' \
  -H 'Authorization: Token <your key_token>'

응답에는 필요한 정보가 포함됩니다.

{
  "id": "f1447e76-59f1-486b-942f-6b90e3570c63",
  "resource": "poll",
  "organisation": "1",
  "key": "1",
  "user": "1",
  "source": "1",
  "session": "ed855b07-f72b-4983-ac1d-980fafee8a0b",
  "type": "data",
  "tasks_pending": [],
  "tasks_processing": [],
  "tasks_completed": ["6bdb82ad-28bf-4aad-ab2c-b4952a7aa3eb"],
  "results": [
    {
      "id": "754cfef0-7576-44c0-acfe-8b0d8d0dd32f",
      "resource": "result",
      "task": "6bdb82ad-28bf-4aad-ab2c-b4952a7aa3eb",
      "identifier": "data:info.account",
      "url": "<your storage config url>",
      "checksum": "2668324d21a20301ce71c28bc5e621d4",
      "size": 12345,
      "state": "available",
      "date_created": "2018-11-22T14:20:53.506542Z",
      "date_consumed": null,
      "date_deleted": null
    }
  ],
  "state": "processing",
  "date_created": "2018-11-22T14:20:52.211618Z",
  "date_started": "2018-11-22T14:20:52.731838Z",
  "date_completed": "2018-11-22T14:20:53.548372Z"
}

결과의 url 속성은 양동이에 저장된 파일을 가리 킵니다.

웹 훅 이벤트 수신

특정 API 기능은 새 데이터를 찾는 asrelay 인스턴스와 같은 외부 트리거 결과 또는 예약 된 폴링으로 인해 자동으로 트리거됩니다. 이러한 경우 API에는 변경 사항이 발생했거나 알고 있어야하는 새 데이터가 게시되었음을 시스템에 알리는 방법이 필요합니다.

이를 위해 API는 webhook 알림을 사용합니다. API가 전송을 시작하기 전에 asrelay 서비스 또는 예약 된 폴링을 사용하기 전에 유효한 webhook 구성으로 조직을 구성해야합니다. 자세한 내용은 webhook 구성 안내서를 참조하십시오.

어떻게 도와 드릴까요?

지원 팀이 도와 드리겠습니다!

근무 시간은 월요일부터 금요일, 오전 9 시부 터 오후 5시 (그리니치 표준시)입니다. 시간은 현재 6:38 오후 GMT입니다.

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

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

이 기사를 개선 할 수 있습니까?

사용자의 의견을 듣고 싶습니다. 전자 메일을 보내지 말고, 의견을 남기거나, 트윗하지 마십시오. @reincubate?

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