はじめに

更新しました

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応答をkey_token場合は、 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も同じ理由で空です。
  • stateunconfiguredです。これは有効なストレージ構成がないことを反映しています。

これは後で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>"
  }
}'

応答にはセッションリソースが含まれます。セッションリソースは、APIがサードパーティサービスとの通信を設定するプロセスを実行している間、最初はpending状態になります。この場合、私たちは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属性の値を確認してください。

アカウントで2FAが有効になっている場合、発生したエラーはcode-required可能性が非常に高いため、いずれかのデバイスで2FAプロセスを使用するようにcode-requiredます。単にステップ(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 StorageおよびAmazon 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データ型を指定し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機能は、 リレーインスタンスが新しいデータを見つけるなどの外部トリガーの結果として、またはスケジュールされたポーリングによって自動的にトリガーされます。このような場合、APIには、変更が発生したこと、または知っておくべき新しいデータが公開されたことをシステムに通知する方法が必要です。

これを行うために、APIはWebフック通知を利用します。 APIがこれらの送信を開始する前、およびasrelayサービスまたはスケジュールされた投票の使用を開始する前に、有効なwebhook設定で組織を設定する必要があります。詳細についてはウェブフック設定のガイドに従ってください。

どのように我々は助けることができます?

サポートチームがお手伝いします!

営業時間は月曜日から金曜日の午前9時から午後5時(GMT)です。 時間は現在 2:19 AM GMTです。

1営業日以内に、お返事を差し上げます。メールアドレスはこちら。

サポートセクションに移動 › エンタープライズチームに連絡する ›
私たちの素晴らしいサポートチーム

この記事を改善できますか?

ユーザーからの連絡をお待ちしています。電子メールを送信したり、コメントを残したり、ツイートしたりしないでください。 @reincubate?

© 2008 - 2019 Reincubate Ltd. 無断複写・転載を禁じます。 イングランドとウェールズに登録 #5189175, VAT GB151788978. Reincubate®は登録商標です。 プライバシーと利用規約. マルチファクタ認証をお勧めします。 ロンドンで愛と建てられた。