セッション
セッションオブジェクトは、特定のソースへのアクセスを表します。
APIがターゲットソースのサービスとのアクセスを確認できるまで、セッションは常に保留状態で作成されます。
ターゲットソースのサービスがアクセスを取り消すと、セッションは期限切れ状態に移行します。
セッションはクライアントが更新できません。
属性
名 | タイプ | 説明 |
---|---|---|
id | ひも | リソース識別子 |
resource | 文字列、常にsession | リソースタイプ識別子。 |
organisation | 組織ID | セッションが関連付けられている組織。 |
key | キーID | このリソースに関連付けられているキー。 |
user | ユーザーID | セッションが関連付けられているユーザー。 |
source | ネストされたソース | セッションが関連付けられているソースインスタンス。 |
state | ひも | pending 、 active 、 failed 、 expired 。 |
error | ひも | セッションが期限切れになった理由を示すコード。 |
date_created | 日付時刻 | リソースが作成されたとき |
date_expired | 日付時刻 | リソースが期限切れになったとき。 |
州
-
pending
- セッションはまだ初期化中です。
-
active
- セッションをタスクの送信に使用する準備が整いました。
-
failed
- セッションの初期化に失敗しました。
-
expired
- セッションは無効になりました。
エラー
セッションには、初期化エラーと有効期限エラーという2種類のエラーがあります。
セッション初期化エラーは通常、不適切なユーザー名またはパスワード、2FA認証の必要性、またはその他の理由でサービスへのアクセス拒否が原因で発生します。これらのエラーにはinit_failed
エラータイプがあります。
ほとんどのセッションは最終的に期限切れになります。より多くのセッション存続期間の詳細はサービス特有のドキュメントで見つけることができます。ただし、セッションの有効期限にはさまざまなトリガーがあります。
service
- サードパーティのサービスがセッションを無効にしました。これは通常、サードパーティサービス内のセッションタイムアウトが原因です(つまり、セッションは24時間しか持続できません)。ただし、これは既存のセッションを無効にすることが多いため、情報源の所有者が資格情報を変更したことによっても発生する可能性があります。
api
- APIは非アクティブセッションを定期的に無効にします。
organisation
- 組織が、おそらくエンドユーザーに代わってセッションを無効にしました。
admin
- API管理者がセッションを無効にしました。
POST /sessions
作成する
パラメーター
名 | タイプ | 説明 |
---|---|---|
source | 必須 | このセッションが関連付けられるソース。内容はソース作成スキーマに従うべきです。 |
payload | 必須 | セッション初期化ペイロード。必要なコンテンツは、ソースが属するサービスによって異なります。 |
cURLを使う
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": "john.appleseed@reincubate.com" }, "payload": { "password": "1234" } }'
ricloud-pyを使う
import ricloud source = { 'user': 1, 'type': 'icloud.account', 'identifier': 'john.appleseed@reincubate.com', } payload = { 'password': '1234', } session = ricloud.Session.create(source=source, payload=payload)
GET /sessions/{session ID}
取得しGET /sessions/{session ID}
cURLを使う
curl https://ricloud-api.reincubate.com/sessions/<session ID> \ -H 'Authorization: Token <your key_token>'
ricloud-pyを使う
import ricloud session = ricloud.Session.retrieve(<session ID>)
リスト
GET /sessions
名 | タイプ | 説明 |
---|---|---|
key | キーIDフィルター | キーIDでフィルタリングします。 |
user | ユーザーIDフィルター | ユーザーIDでフィルタリングします。 |
source | ソースIDフィルタ | ソースIDでフィルタリングします。 |
state | 文字列フィルタ | セッション状態でフィルタリングします。 |
date_created | 日時フィルター | セッションが作成されたときにフィルタします。 |
date_expired | 日時フィルター | セッションが期限切れになったときにフィルタをかけます。 |
cURLを使う
curl https://ricloud-api.reincubate.com/sessions \ -H 'Authorization: Token <your key_token>'
ricloud-pyを使う
import ricloud sessions = ricloud.Session.list()
削除DELETE /sessions/{session ID}
このインタラクションはセッションを期限切れにし、APIに関連付けられているキャッシュデータをすべて削除します。実際のセッションリソースインスタンスはレコードに対して永続化されます。
cURLを使う
curl https://ricloud-api.reincubate.com/sessions/<session ID> \ -X DELETE \ -H 'Authorization: Token <your key_token>'
ricloud-pyを使う
import ricloud session = ricloud.Session.delete_with_id(<session ID>) # OR session = ricloud.Session.retrieve(<session ID>) session.delete()