ColdFusion から Google Translate のデータにクエリ

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
ColdFusion の標準データアクセスコードで Google Translate のデータ に接続。



CData JDBC ドライバーを使用すると、ColdFusion の高速開発ツールを使って Google Translate のデータ にシームレスに接続できます。本記事では、ColdFusion から Google Translate のデータ に接続し、Google Translate テーブルにクエリを実行する方法を説明します。

ColdFusion で Google Translate 用JDBC データソースを作成

JDBC データソースを設定すると、cfquery タグや executeQuery などのCFScript から標準SQL を実行できるようになります。

  1. インストールディレクトリから、ドライバーのJAR ファイルと.lic ファイルをColdFusion のクラスパスにコピーします。例えば、C:\MyColdFusionDirectory\cfusion\wwwroot\WEB-INF\lib にコピーします。または、ColdFusion Administrator の[Java と JVM]ページで、[ColdFusion Class Path]ボックスにファイルへのパスを入力します。

    ドライバーのJAR ファイルとライセンスファイルは、インストールディレクトリの lib サブフォルダにあります。

    この手順の後、サーバーを再起動してください。

  2. ドライバーをデータソースとして追加します。

    ColdFusion Administrator 画面で、[データ&サービス]ノードを展開し、[データソース]をクリックします。[新しいデータソースの追加]セクションで、データソースの名前を入力し、[ドライバー]メニューから[Other]を選択します。

  3. ドライバーのプロパティを設定します。

    • JDBC URL:JDBC URL に接続プロパティを入力します。JDBC URL は jdbc:api: で始まり、その後にセミコロン区切りで name=value 形式の接続プロパティを指定します。

      認証

      Google Cloud Translation API では、翻訳サービス、データセット、用語集、適応型 MT リソースへの安全なアクセスを確保するために、OAuth 2.0 認証が必要です。この認証方式により、Google Cloud プロジェクトに安全に接続し、適切な認可のもとで翻訳リソースを管理できます。

      OAuth 2.0 のセットアップと設定

      ステップ 1:Google Cloud プロジェクトの作成と API の有効化

      OAuth 認証をセットアップするには、以下のステップで進めます:

      1. Google Cloud Console にアクセスします
      2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
      3. Project ID を控えておきます(すべての API 呼び出しで必要です)
      4. 「APIs & Services」 > 「Library」に移動します
      5. 「Cloud Translation API」を検索して有効化します
      6. 「APIs & Services」 > 「Credentials」に移動します
      7. 「Create Credentials」をクリックし、「OAuth Client ID」を選択します
      8. プロンプトが表示されたら OAuth 同意画面を設定します
      9. 用途に応じて「Desktop application」または「Web application」を選択します
      10. 承認済みリダイレクト URI(CallbackURL)を設定します
      11. 接続で使用する Client ID と Client Secret をコピーします

      必須の接続プロパティ

      • AuthScheme:OAuth に設定します(必須)
      • OAuthClientId:Google Cloud Console の Client ID(必須)
      • OAuthClientSecret:Google Cloud Console の Client Secret(必須)
      • CallbackURL:OAuth アプリケーションで指定したリダイレクト URI(必須)
      • InitiateOAuth:トークンを自動管理するには GETANDREFRESH に設定します(推奨)
      • ProjectId:Google Cloud のプロジェクト ID またはプロジェクト番号(クエリに必須)

      必須の OAuth スコープ

      Google Cloud Translation API プロファイルでは、以下の OAuth スコープが必要です:

      • https://www.googleapis.com/auth/cloud-translation - 翻訳、データセット、用語集、適応型 MT を含む Cloud Translation API リソースへのフルアクセス

      組み込みの接続文字列デザイナー

      JDBC URL の構築には、Google Translate JDBC ドライバーに組み込まれた接続文字列デザイナーをご利用ください。JAR ファイルをダブルクリックするか、コマンドラインから実行します。

      java -jar cdata.jdbc.api.jar
      

      接続プロパティを入力し、接続文字列をクリップボードにコピーします。

      一般的なJDBC URL は次のようになります。

      jdbc:api:Profile=C:\profiles\GoogleTranslate.apip;AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;CallbackUrl=your_callback_url;
    • Driver Class:ドライバークラスを入力します。ドライバークラスは cdata.jdbc.api.APIDriver です。
    • Driver Name:ドライバーのユーザー定義名を入力します。
    • Username:認証に使用するユーザー名を入力します。
    • Password:認証に使用するパスワードを入力します。

これで、[操作]列で CData Google Translate データソースを有効にして接続をテストできます。ステータスがOK と表示されたら、Google Translate データソースの準備完了です。

クエリの実行

cfquery タグで Google Translate にSQL ステートメントを送信できます。cfqueryparam タグを使用して、パラメータ化クエリを作成し、クエリ文字列によるSQL インジェクションを防止します。

注意cfquerycfscript を使用するには、.cfm ファイルを作成します。その.cfm ファイル内に、クエリを実行するコードを記述します(下記参照)。ファイルをWeb サーバーのルートディレクトリ(Adobe ColdFusion の場合はwwwroot など)に直接配置します。変更を反映するには、ファイル配置後にサービスを再起動してください。


<cfquery name="APIQuery" dataSource="CDataAPI">
  SELECT * FROM SupportedLanguages WHERE ProjectId = <cfqueryparam value="#ProjectId#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfdump var="#APIQuery#">

CFScript で記述すると以下のようになります。


<cfscript>
result = queryExecute(
  "SELECT * FROM SupportedLanguages WHERE ProjectId = ?",
  [
    { value="my-project-12345", cfsqltype="cf_sql_varchar" }
  ],
  { datasource="CDataAPI" }
);

writeDump( var= result );
</cfscript>

その後、以下のように.cfm ファイルにリクエストを送信できます。

http://MyServer:8500/query.cfm?ProjectId=my-project-12345

はじめる準備はできましたか?

API Driver で Google Translate のライブデータに接続

Google Translate に接続