高度な設定
このページを読む必要がありますか?
クイックスタートクイックスタートページを既に完了している場合、通常このページを読む必要はありません。このページでは、より詳しい背景情報を扱っています。
Kognicは、顧客向けサービスのHTTP APIと、基本的なAPI呼び出しをラップしてPythonコードからのAPI呼び出しを簡素化するAPIクライアントライブラリ(kognic-io)を提供しています。
認証
認証はkognic-authによって処理されます。これはrequestsライブラリの上にKognic認証の基盤を提供するPython 3ライブラリです。
認証は標準的なOAuth 2.0クライアントクレデンシャルフローに基づいています。APIクライアントに認証情報を提供する方法はいくつかあります。kognic-queryやkognic-ioなどのKognic Pythonクライアントは、明示的に設定できるauthパラメータを受け付けます。また、環境変数でKognic認証情報ファイルのパスを指定することもできます。以下の例をご覧ください。
認証情報の生成
KognicクライアントIDとKognicクライアントシークレットを含む認証情報ファイルは、Kognicウェブアプリケーションのユーザーメニューにある「Api Credentials...」(API認証情報)をクリックし、続いて「Generate Credentials」(認証情報の生成)ボタンをクリックすることで生成できます。

認証情報ファイルは、~/.config/kognic/credentials.jsonなどの適切なディレクトリに保存してください。
例
認証情報を設定する方法はいくつかあります。
- 環境変数KOGNIC_CREDENTIALSにKognic認証情報ファイルのパスを設定します。コマンドexport KOGNIC_CREDENTIALS=~/.config/kognic/credentials.jsonを実行してください。
- 環境変数KOGNIC_CLIENT_IDとKOGNIC_CLIENT_SECRETを設定します。
- authパラメータに認証情報ファイルのパスを設定します(例:auth="~/.config/kognic/credentials.json")。
- authパラメータに認証情報のタプルを設定します(例:auth=(<client_id>, <client_secret>))。
デフォルトでは、KognicのAPIクライアントは環境変数に設定された認証情報を使用します。環境変数が正しく設定されていれば、以下のようにするだけで認証済みのkognic-ioクライアントを作成できます:
from kognic.io.client import KognicIOClient
api_client = KognicIOClient()または、認証情報を明示的に指定することもできます:
from kognic.io.client import KognicIOClient
api_client = KognicIOClient(auth="~/.config/kognic/credentials.json")内部的には、すべて自動トークン更新機能を備えたrequestsセッションを実装するAuthSessionクラスを使用しています。
ワークスペースの指定
kognic-io v2.4.0以降、データアップロード時に使用するワークスペースを指定できます。複数のワークスペースにアクセスできるユーザーの場合、この指定は必須です。
データをアップロードするワークスペースを見つけるには、ドロップダウンから選択してください:

次に、「Workspace management」(ワークスペース管理)をクリックします:

右上にあるコピーオプションでワークスペースIDをコピーします:

kognic-ioクライアントを作成する際にこのIDを指定すると、データのアップロード時に使用されます:
from kognic.io.client import KognicIOClient
api_client = KognicIOClient(write_workspace_id=<Some workspace uuid>)プロキシ設定
組織のネットワークポリシーにより、HTTP(S)トラフィックを特定のホストを経由してプロキシする必要がある場合は、OSまたは実行環境で設定してください。kognic-ioはPythonのurllibを使用しており、OSおよび環境変数からプロキシ設定を自動的に取得します。
使用する正しいプロキシホスト/アドレスは組織内のネットワーク構成によって異なるため、詳細については社内のITサポートにお問い合わせください。
例:
export HTTPS_PROXY='http://10.9.8.7:1234'