Contents
DS Insight APIとPython連携の概要
DS Insight APIは、Yahoo Japanが提供する検索キーワードデータを活用した市場分析やユーザー行動解析に特化したAPIサービスです。本記事では、CData API Driverを介してPythonからDS Insight APIを連携する方法を解説します。特に、OAuth 2.0認証による安全な接続フローと、実装時の技術的ポイントに焦点を当てます。
注意: CData API DriverはYahoo Japan公式製品ではなく、第三者ツールである点にご留意ください。
OAuth認証フローの実装手順
DS Insight APIへの接続にはOAuth 2.0によるアクセストークン発行が前提です。以下にステップバイステップで説明します。
クライアントID・シークレットの取得方法
- Yahoo Japan Developer Network(YDN)にアクセスし、アプリケーションを作成します。
- 「OAuth 2.0」認証タイプを選択し、「Client ID」「Client Secret」を発行します。
- 発行された情報を安全な場所に保存し、後述の接続設定時に使用します。
アクセストークンの発行フロー
OAuth 2.0では、以下の手順でアクセストークンを取得します。
-
認証リクエスト
下記URLにPOSTリクエストを送信し、認証コードを取得します。
POST https://api.login.yahoo.co.jp/oauth2/token
Body:
grant_type=authorization_code
code={認証コード}
client_id={Client ID}
client_secret={Client Secret} -
アクセストークンの取得
上記リクエスト成功時に、レスポンスからaccess_tokenとexpires_in(有効期限)を取得します。 -
トークン有効期限管理
expires_inは通常3600秒(1時間)で、再発行リクエストが必要です。- Pythonでは
datetimeモジュールを使用してトークンの期限切れを検知し、自動更新を実装できます。
CData API Driverの設定構築
CData API Driverを使うには、設定ファイル(JSON形式)を作成する必要があります。このツールは第三者提供のライブラリであり、Yahoo Japan公式製品ではありません。
configファイル生成手順
- 接続文字列の作成
下記パラメータを含むJSONファイルを作成します。
json
{
"Url": "https://ds.insight.yahoo.co.jp/api/v1",
"OAuthClientId": "{Client ID}",
"OAuthClientSecret": "{Client Secret}",
"OAuthAccessToken": "{取得したトークン}"
}
- ドライバのインストール
pipコマンドでCData API Driverをインストールします。
bash
pip install cdata-api-driver
接続文字列のパラメータ設計
| パラメータ名 | 必須 | 説明 |
|---|---|---|
| Url | ○ | DS Insight APIエンドポイント |
| OAuthClientId | ○ | Yahoo YDNから発行したクライアントID |
| OAuthClientSecret | ○ | クライアントシークレット |
| OAuthAccessToken | ○ | アクセストークン(1時間有効) |
PythonでのAPI実装例
CData API DriverとPythonを連携させた簡単なコードサンプルを紹介します。
リクエスト処理コードサンプル
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import cdata # 設定ファイル読み込み(例: config.json) config = cdata.load_config('config.json') # DS Insight APIに接続 conn = cdata.connect(config) # 検索キーワードデータを取得(例: カテゴリID='1234'で検索) query = "SELECT * FROM search_keywords WHERE category_id = '1234'" cursor = conn.cursor() cursor.execute(query) results = cursor.fetchall() for row in results: print(row['keyword'], row['count']) |
レスポンスデータの構造解析
DS Insight APIのレスポンスはJSON形式で返されます。主なフィールドは以下の通りです。
| フィールド名 | 説明 |
|---|---|
| keyword | 検索キーワード |
| count | そのキーワードの出現回数 |
| category_id | 分類ID(検索カテゴリ) |
実装時の注意点と対策
API連携ではエラー処理やレート制限に配慮する必要があります。
エラーコードのハンドリングパターン
| エラーコード | 原因 | 対応方法 |
|---|---|---|
| 401 | 有効期限切れのトークン | 自動で再発行リクエストを実施 |
| 429 | レート制限超過 | time.sleep()で1秒待機後再試行 |
| 503 | 一時的なサーバーエラー | 最大3回までリトライする |
レート制限回避戦略
-
DS Insight APIは1時間あたり最大200リクエストに制限されます。
注意: 実際のレート制限条件は、公式ドキュメントで最新情報を確認してください。
-
Pythonでは
time.sleep(1)を組み込み、連続してリクエストしないようにします。
導入支援リソース
DS Insight APIとPythonの実装をスムーズにするための公式リソースをご案内します。
公式SDKダウンロードリンク
CData API Driverの最新バージョンは公式サイトから無料でダウンロード可能です。
GitHubサンプルコードリポジトリ
実装例やテストコードが公開されています。参考にしつつ、ご自身の環境に合わせてカスタマイズしてください。
注意: 本リンクはCData公式リポジトリであり、Yahoo Japanによる提供ではありません。
GitHubリポジトリはこちら
よくある質問(FAQ)
Q1. DS Insight APIのレート制限条件を確認できますか?
A. 公式ドキュメント(リンク)で最新情報をご確認ください。本記事記載の「200リクエスト/hour」は現時点での情報です。
Q2. CData API Driverは有料ですか?
A. CData製品は無料で利用可能です(商用利用も含む)。ただし、サポートやアドオン機能は有料となる場合があります。
まとめ
本記事ではDS Insight APIとPythonの連携方法について、OAuth認証フローとCData API Driverの導入手順を解説しました。実装時に注意すべき点や対策も含め、スムーズな導入に役立つ情報を提供しています。ご不明点は公式サポートをご利用ください。