asmaster(v2)でデータを購読する

更新しました

概要

asmasterは、クラウドに保存されているアカウントとデバイスに関するデータを購読するために使用されます。アカウントまたはデバイスを購読することにより、クライアントは利用可能になると自動的に新しいデータをaschannel経由でプッシュされます。

asmaster使った典型的なリクエストフローは次のようになります。

  • 必要なサービスがlist-servicesサービスで利用可能であることを確認してください
  • 新規ユーザーのアカウントにlist-subscriptions購読がまだ購読されていないことを確認しlist-subscriptions
  • subscribe-accountを使ってアカウントをsubscribe-account
  • perform-2fa-challengeおよびsubmit-2fa-challenge perform-2fa-challengeステップをすべて完了する
  • デバイスデータが重要な場合は、 list-devicesを呼び出して関連付けられているlist-devicesを取得します。
  • subscribe-deviceを使ってデバイスをsubscribe-device
  • アカウントのトークンが期限切れまたは期限切れに近づいたことをaschannelが報告した場合は、ユーザーにresubscribe-account指示してくださいresubscribe-account
  • ユーザーが自分のデバイスまたはアカウントの監視を中止したい場合は、 unsubscribe-deviceまたはunsubscribe-account呼び出し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メソッドは、 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使った作業の2番目の部分はアカウントの購読です。アカウントはsubscribe-accountメソッドで購読することができます。これが呼び出されると、 asmasterは内部認証トークンを作成して保存します。これにより、アカウントの主要な資格情報がなくてもアカウントに引き続きアクセスできるようになります。使用されているサービスに応じて、トークンの有効期間は数日から数カ月間で変わる可能性があり、 aschannelはクライアントに通知します。期限切れになったら、購読を更新するためにresubscribe-accountメソッドを使用する必要があります。

subscribe-accountが呼び出されると、認証に成功すると利用可能なすべてのデバイスのリストが返されます。ただし、 list-devicesメソッドは、すでに購読されているアカウントに対してこの機能を実行するために存在します。

unsubscribe-accountメソッドをunsubscribe-accountして、 unsubscribe-accountunsubscribe-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ように

応答

呼び出しは、いくつかの方法のうちの1つで戻ります。

  • 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を呼び出すために409: MFA process required信号信頼できるデバイスのリストと一時的な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 サービスごとのその他のエラーサインインエラー

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 -

パラメーター:

応答

{ "success": true
}

デバイスの購読と購読解除

デバイスを登録または登録解除するには、ユーザーは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時から午後5時(GMT)です。 時間は現在 1:56 AM GMTです。

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

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

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