質問
Zendesk v2 APIを使用してAPIリクエストを認証するにはどうすればよいですか?
回答
認証済みAPIリクエストを実行するには、認証済みのZendeskユーザーであることが必要です。APIリクエストを認証するには、メールアドレスとパスワード、メールアドレスとAPIトークン、またはOAuthアクセストークンでBasic認証を使用します。
それぞれの認証方法で、承認ヘッダーの設定が異なります。ペイロードまたはURLで送信された資格情報は処理されません。各オプションを以下に示します。
パスワード認証
Basic認証を使用している場合は、メールアドレスとパスワードを組み合わせて承認ヘッダーを生成できます。Basic認証を使用するには、管理センターの「アプリおよびインテグレーション」>「API」>「Zendesk API」の順に選択し、関連する認証セクション(「チームメンバー」または「エンドユーザー」)で、パスワードアクセスを有効にする必要があります。
メールアドレスとパスワードの組み合わせをBase-64
でエンコードされた文字列にフォーマットします。認証ヘッダーをフォーマットする方法の例については、次のコードブロックを参照してください。
Authorization: Basic {base-64-encoded email_address:password}
APIトークン認証
APIトークンを使用している場合、メールアドレスとAPIトークンを組み合わせて承認ヘッダーを生成します。メールアドレスとAPIトークンの組み合わせをBase-64
でエンコードされた文字列にフォーマットします。認証ヘッダーをフォーマットする方法の例については、次のコードブロックを参照してください。
Authorization: Basic {base-64-encoded email_address/token:api_token}
OAuthアクセストークン認証
OAuthを使用して認証を行う場合は、認証ヘッダーを次のようにフォーマットします。
Authorization: Bearer oauth_access_token
詳しくは、次の記事を参照してください:「アプリでのOAuth認証の使用」
承認ヘッダーを表示する
アプリが送信するものを正確に確認するには、Request Binなどのサードパーティページを使用します。OAuth認証を使用するWebhookにより生成されるヘッダーと、自分のヘッダーを比較します。Webhookをrequestb.inのURLにポイントし、「Webhookを追加」ページで、「Webhookをテスト」をクリックして、実際の動作を確認します。
リクエストがrequestb.inに届くと、次のように表示されます。
Authorization: Bearer
の後ろの文字列は、「プログラムによるアクセス」にあるアカウント設定でRequestBinで提供されるAPIキーです。
Pythonを使用してリクエストを実行する場合、セッションヘッダーを以下のように設定します。
session = requests.Session()
session.headers = {'Content-Type': 'application/json', 'Authorization': 'Basic Basic_64_encoded_code'}
詳細については、開発ドキュメントを参照してください:「セキュリティおよび認証」