Web アプリケーションでの Google Web サービスの使用
Web サービスとして公開される Google AdSense API は、Google の AdSense プログラムへの参加を希望するユーザーを対象としています。Google の AdSense プログラムは、Google がユーザーのサイトにウィジェットを組み込むことをユーザーが許可する、収益を共有するための仕組みです。このようなウィジェットは、ユーザーのサイトの内容に合わせた広告の形式、またはこのチュートリアルで使用される例に示すような Google 検索ウィジェットで表示されます。いずれのケースでも、Google は、これらのウィジェットが誘導するアクセスについて、ユーザーと収益を共有します。
これらのウィジェットの追加には、この例で示すようなある程度のプログラミング処理が求められ、それには Web サービスに関する知識が一般的に必要とされます。ただし、このチュートリアルでは、最低限の知識とコーディングだけで、NetBeans IDE を使用して Google 検索ウィジェットをサイトに追加する方法を説明します。
注: このチュートリアルでは、Google 開発者向けサンドボックスを使用します。このサンドボックスの規則は、しばしば変更される傾向があります。ランタイムエラーが発生したり、このチュートリアルで指定した値がうまく機能しない場合は、ブラウザに表示されるエラーテキストを確認し、入力した値にタイプミスがないかどうか、コードを注意深く確認することをお勧めします。次に、何も問題がない場合は、Google 開発者向けサンドボックスの値が変更されている可能性があります。値を調整する必要がある場合は、http://code.google.com/apis/adsense/ を参照してください。
目次
チュートリアルに必要なソフトウェア
このチュートリアルに従うには、次のソフトウェアとリソースが必要です。
NetBeans IDE
Web および Java EE の version 6.1
Java Development Kit (JDK)
version 6 または
version 5
Java EE 互換の Web サーバーまたはアプリケーションサーバー
Tomcat Web サーバー 6.0 および/または GlassFish アプリケーションサーバー v2
両方とも NetBeans IDE の Web および Java EE の配布に同梱
最新の Google AdSense サービス ID
Google サポート から、ca-pub-xxxxxx の形式で入手します。
Web プロジェクトの作成
最初に、Web プロジェクトを作成する必要があります。このケースでは、「新規プロジェクト」ウィザードに用意されているいずれかのサンプルをスタート地点として使用します。
「ファイル」>「新規プロジェクト」を選択します。「カテゴリ」で、「サンプル」を選択し、「RESTful Web サービス」を選択します。「プロジェクト」で、次に示すように「顧客データベース」を選択します。
「次へ」をクリックして、「完了」をクリックします。
サンプルプロジェクトが IDE で開き、「プロジェクト」ウィンドウにプロジェクトの概要が表示されます。
Google Web サービスの追加
コンポーネントパレットから項目をドラッグ&ドロップすることにより、Google Web サービスとの通信に必要なすべてのコードを IDE で生成することができます。いったんこれを実行すると、次に示すように、関連する Google API を参照してコードをカスタマイズできます。最後に、IDE は、Web サービスで使用可能なすべてのオペレーションを呼び出す Web クライアントを用意することで、アプリケーションのテストを支援します。
Google Web サービスを追加するには、次の手順に従います。
customerdb.service パッケージの CustomerResource クラスを開きます。
次のメソッドをクラスに追加します。
@Path("adSenseForSearch")
@GET
@ProduceMime("text/html")
public String getAdSenseForSearchCode() {
// ここでドラッグ&ドロップし、生成された html コードを返す。
return null;
}
IDE で「サービス」タブを開きます。「Web サービス」ノードを展開します。Web サービスの一覧が表示されます。Google ノードを検索し、展開します。Google サービスの一覧から、AdSenseForSearch Service を検索して展開し、GoogleAdSenseForSearch オペレーションを表示します。
generateSearchBoxCode オペレーションをドラッグし、getAdSenseForSearch メソッド本体にドロップします。
項目をドロップすると、証明書が表示されます (すでに sandbox.google.com を信頼しているのでないかぎり)。証明書を受け入れます。次のカスタマイザが表示されます (画像では、入力後のカスタマイザを表示)。
カスタマイザに次の情報を入力します。
country。 US
searchType。 GoogleSiteSearch
selectedDomain。 wiki.netbeans.org
「了解」をクリックします。IDE が Web サービスをプロジェクトに追加している間、進捗バーが表示されます。getAdSenseForSearch メソッドの本体全体は次のとおりです。
@Path("adSenseForSearch")
@GET
@ProduceMime("text/html")
public String getAdSenseForSearchCode() {
// ここでドラッグ&ドロップし、生成された html コードを返す。
try {
java.lang.String synServiceId = "";
java.lang.String country = "US";
java.lang.String searchType = "GoogleSiteSearch";
com.google.api.adsense.v2.SiteProperties siteProperties = null;
com.google.api.adsense.v2.SearchOptions searchOptions = null;
java.util.List domains = null;
java.lang.String selectedDomain = "wiki.netbeans.org";
com.google.api.adsense.v2.SearchBoxStyle searchBoxStyle = null;
java.lang.String channelName = "";
com.google.api.adsense.v2.AdSenseForSearchServiceService service = new com.google.api.adsense.v2.AdSenseForSearchServiceService();
com.google.api.adsense.v2.AdSenseForSearchService port = service.getAdSenseForSearchService();
// TODO process result here
java.lang.String result = port.generateSearchBoxCode(synServiceId, country, searchType, siteProperties, searchOptions, domains, selectedDomain, searchBoxStyle, channelName);
return result;
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
次の局所変数について、getAdSenseForSearch メソッド本体のコードを若干カスタマイズします。
synServiceId = "partner-pub-6309917007979926";
// synServiceId の数字は、AdSense サービス ID の数字と同じであることが必要
最初に取得した Google AdSense サービス ID の数値部分をコピーします (「チュートリアルに必要なソフトウェア 」を参照)。この数値を synServiceId の数値部分として使用します。
アプリケーションへのコードの追加
この節では、Google API からコードを実装する手順と、さらに詳しい情報を得る手段を説明します。すべてのコードは、AdSenseForSearchResource クラスで実装されます。
CustomerResource の任意の場所に、次の setHeaderParameters メソッドを追加します。チュートリアルを始める前に入手した partner-pub-xxxxx の値を使用します (「チュートリアルに必要なソフトウェア 」を参照)。コードをペーストしたあと、インポートを修正します。
private void setHeaderParameters(AdSenseForSearchService port) {
WSBindingProvider bp = (WSBindingProvider) port;
bp.setOutboundHeaders(
com.sun.xml.ws.api.message.Headers.create(new QName("http://www.google.com/api/adsense/v2", "client_id"), "partner-pub-6309917007979926"),
com.sun.xml.ws.api.message.Headers.create(new QName("http://www.google.com/api/adsense/v2", "developer_password"), "Q6R3l6a483"),
com.sun.xml.ws.api.message.Headers.create(new QName("http://www.google.com/api/adsense/v2", "developer_email"), "adsensedeveloper1@google.com")
);
}
getAdSenseForSearch メソッド本体の // TODO process result here の下に、次の内容を追加します。
domains = java.util.Arrays.asList(new String[]{selectedDomain});
// 検索オプションを設定
searchOptions = new SearchOptions();
// サイトプロパティーを設定
siteProperties = new com.google.api.adsense.v2.SiteProperties();
siteProperties.setLocale("en");
siteProperties.setEncoding("");
// スタイルを設定
searchBoxStyle = new com.google.api.adsense.v2.SearchBoxStyle();
searchBoxStyle.setLogoType("GoogleLogo");
searchBoxStyle.setBackgroundColor("#CCCCCC");
searchBoxStyle.setTextColor("black");
searchBoxStyle.setTextBoxLength(40);
searchBoxStyle.setSearchStyleName("Blue Sky");
さらに、次の行を getAdSenseForSearchCode メソッド本体に追加します。
setHeaderParameters(port);
検索オプションにさらに追加できるカスタマイズの詳細については、AdSenseForSearch の generateSearchBox をお読みください。
アプリケーションのテスト
アプリケーションをテストするには、次の手順を実行します。
「プロジェクト」ウィンドウで、プロジェクトを右クリックし、「RESTful Web サービスをテスト」を選択します。サーバーが起動してブラウザが開いて RESTful Web クライアントが表示され、RESTful Web サービスとの通信をテストできます。
ここで、「/customers」リンクを選択して、「テスト」をクリックします。次に、customer のリンク (「/customers/1/」など) を選択して、再度「テスト」をクリックします。最後に、「/customers/1/adSenseForSearch/」リンクを選択し、次に示すように MIME タイプで「text/html」を選択したことを確認して、再度「テスト」をクリックします。
「raw データのビュー」タブに、Google 検索ボックスが表示されるはずです。
検索ボックスに何か語句を入力し、「Search」をクリックします。ブラウザが開いて検索結果が表示され、アプリケーションが正しく機能していることが示されます。
「テスト入力」の上にあるリンクをクリックします。http://localhost:8080/CustomerDB/resources/customers/1/adSenseForSearch/ のようなリンクが表示されます。このリンクをクリックすると、テストモード外に移動し、Web アプリケーション自体の新しいブラウザウィンドウが表示されます。
関連項目
NetBeans IDE 6.0 を使用した Java EE アプリケーションの開発方法についての詳細は、次のリソースを参照してください。
nbj2ee
@
netbeans.org
メーリングリスト に登録することによって、NetBeans IDE Java EE 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。