시작하기

업데이트 됨

ricloud 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": {
      "data": [],
      "has_more": false,
      "total_count": 0,
      "url": "/configs/storage"
    },
    "storage_config_default": null,
    "webhook_configs": {
      "data": [],
      "has_more": false,
      "total_count": 0,
      "url": "/configs/webhook"
    },
    "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와 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": "<user ID from previous request>",
    "type": "icloud.account",
    "identifier": "<iCloud account username>"
  },
  "payload": {
    "password": "<iCloud account password>"
  }
}'

응답에는 세션 리소스가 포함되며,이 세션 리소스는 API가 타사 서비스와의 통신을 설정하는 과정을 거치는 동안 처음에는 pending 상태에있게됩니다.

{
  "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 속성 값을 확인하십시오. 귀하의 계정에서 2FA가 활성화되어 있고 암호가 정확하다면, 발생한 오류는 code-required 있습니다. 계정에 연결된 iOS 기기 중 하나에 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": "<user ID from previous request>",
    "type": "icloud.account",
    "identifier": "<iCloud account username>"
  },
  "payload": {
    "password": "<iCloud account password>",
    "code": "<2FA code>"
  }
}'

다른 오류가 발생한 경우 자세한 내용은 오류 섹션을 확인하십시오.

상태가 active 되면 세션은 소스에서 데이터 및 파일을 검색하는 데 사용할 수 있습니다.

그러나 앞에서 본 것처럼 조직은 아직이 데이터를 받도록 구성되어 있지 않습니다.

데이터 및 파일 검색

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

스토리지 구성이 완료되면 조직을 다시 검색 할 수 있습니다. state 는 이제 unconfigured 되지 않고 active state 여야합니다.

데이터 폴링 만들기

설문 조사를 작성하려면 활성 세션의 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",
  "payload": {
    "data_types": ["icpl.photos"],
  }
}'

위의 호출에서 icpl.photos 데이터 형식을 요청합니다. 다른 유형의 데이터 검색에 관심이 있거나 특히이 데이터 유형에 대한 권한이 없을 수 있습니다. 필요에 따라이 값을 대체하십시오.

statepending 거나 processing pending 폴링 리소스를 반환합니다. 백그라운드에서 API는이 정보를 검색하는 데 필요한 실제 작업을 수행하는 작업도 만들었습니다 (작업은 세션을 더 일찍 설정하기 위해 만들어졌습니다).

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

이 시점에서 비어있는 results 속성에 유의하십시오. 여기에서이 여론 조사에서 출판 된 데이터 나 파일에 대한 참조가 나타납니다. 사용 가능한 결과가 게시되므로 전체 설문 조사가 완료되기 전에 검색 할 수 있습니다.

요청 된 모든 데이터와 파일이 스토리지에 게시되면 폴 상태가 completed 변경됩니다.

결과 정보 검색

이는 폴의 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",
  "tasks_pending": [],
  "tasks_processing": [],
  "tasks_completed": ["6bdb82ad-28bf-4aad-ab2c-b4952a7aa3eb"],
  "results": {
    "data": [
      {
        "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
      }
    ],
    "has_more": false,
    "total_count": 0,
    "url": "/polls/f1447e76-59f1-486b-942f-6b90e3570c63/results"
  },
  "errors": {
    "data": [],
    "has_more": false,
    "total_count": 0,
    "url": "/polls/f1447e76-59f1-486b-942f-6b90e3570c63/errors"
  },
  "state": "completed",
  "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 속성은 양동이에 저장된 파일을 가리 킵니다.

웹 훅 이벤트 수신

Reincubate Relay 앱과 같은 외부 트리거로 인해 새로운 데이터를 찾거나 구독으로 인해 특정 API 기능이 자동으로 트리거됩니다. 이 경우 API는 변경 사항이 발생했거나 알아야 할 새 데이터가 공개되었음을 시스템에 알리는 방법이 필요합니다.

이를 위해 API는 웹 후크 알림을 사용합니다. API에서 전송을 시작하기 전에 그리고 Reincubate Relay 서비스 또는 구독을 사용하기 전에 유효한 webhook 구성으로 조직을 구성해야합니다. 자세한 내용은 webhook 구성 안내서를 따르십시오.

어떻게 도와 드릴까요?

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

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

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

우리의 멋진 지원 팀

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

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

© 2008 - 2024 Reincubate Ltd. 판권 소유. 영국과 웨일즈에 등록 #5189175, VAT GB151788978. Reincubate® 및 Camo®는 등록 상표입니다. 개인 정보 정책 & 자귀.