次の方法で共有


Visual Basic .NET を使用した Google Web サービスへのアクセス

日本語版最終更新日 2002 年 11 月 29 日

ここでは Visual Basic® .NET の Windows フォームから Google Web API サービスへアクセスする方法について学びます。この記事では、SOAP Web サービスを呼び出す方法、Google 検索を実行する方法、Google キャッシュ内のページへアクセスする方法、および Google スペル チェック機能を呼び出す方法について説明します。

VBGoogleDemo.exe は MSDN Code Center (英語) からダウンロードできます。

サンプルのダウンロード

目次

Web サービスの魅力
サンプル フォーム
手順
例外処理について
まとめ
キットおよびライセンス キーの入手方法

Web サービスの魅力

Web サービスは、インターネットおよびビジネスに成功をもたらす最も刺激的な新しいテクノロジです。Web サービスによって、標準的な方法で複数のビジネス間を接続することが可能となり、トランスポートとしてインターネットを使用し、ファイアウォールを経由するリモート プロシージャ コールの実行を可能にします。開発者が Google の検索、キャッシュ、およびスペル チェック サービスにアクセスできるように、Google はパブリック Web サービスを先駆けて提供してきました。Visual Studio® .NET を使用すると、Google Web API サービスが提供するさまざまな機能へのアクセスを簡単に行うことができます。

サンプル フォーム

図 1 に、インターフェイスのサンプル フォームを示します。このフォームには、Google のライセンス キー (「Sidebar : How to Get the Google Web APIs Toolkit and License Key」を参照してください。) を入力するテキスト ボックスおよび Google の 3 つの機能を使用するための 3 つのセクションがあります。最初のセクションでは、検索文字列を入力することにより、検索結果件数を受け取ることができます。次のセクションでは、Web サイトの URL を入力することにより、Google のキャッシュにあるページ サイズを受け取ることができます。最後のセクションでは、Google のスペル チェック機能を呼び出し、正しいスペルの候補値を受け取ることができます。

図 1: 実行フォーム

手順

フォームで実行できる処理については説明したので、次にその処理をコード化する手順について説明します。コード化には次の 4 つの主な手順があります。

  • Web サービスを参照する。
  • 検索を実行する関数を作成する。
  • キャッシュ サイズを確認する関数を作成する。
  • スペル チェック機能を呼び出す関数を作成する。

Google Web サービスを参照する

Google Web サービスを参照する手順は次のとおりです。

  1. 新しい Windows フォーム プロジェクトを作成します。

  2. プロジェクトを右クリックします。

  3. [Web 参照の追加] をクリックします。

    注 : [Web 参照の追加] オプションは、Visual Basic 6 の [ファイルの参照] とほぼ同じですが、[ファイルの参照] オプションが COM コンポーネントのすべてのメソッドにアクセスを行うのに対し、[Web 参照の追加] オプションでは異なるネットワーク上にある XML Web サービスにアクセスを行うという点で異なります。さらに、このアクセスでは入力機能が完全にサポートされているため、IntelliSense® がローカル オブジェクトと同じようにトリガされます。

  4. Web サービスのコードが記述されているロケーション (http://api.google.com/GoogleSearch.wsdl) を [アドレス] ボックスに入力します。

  5. [参照の追加] ボタンをクリックして Web サービスの定義をインポートします。

  6. インポートの完了後、ソリューション エクスプローラを起動して、ツリーの [Web 参照] ノードを開きます。

  7. 参照をマウスの右ボタンでクリックして [名前の変更] を選択し、Google への参照名を変更します。

  8. 上記のフォームを作成します。

コードを各ボタンに追加します。各ボタンをダブルクリックすると、Visual Basic 6 と同様に、Click イベントが発生する際に実行されるメソッドにアクセスすることができます。次に、各メソッドについて順に説明します。

Google 検索を実行する

リスト 1 の btnSearch_Click メソッドのコードを参照すると、新しい GoogleSearchService オブジェクトが作成されることがわかります。次の行では、新しい GoogleSearchResult オブジェクトが作成され、1 行の中にオブジェクトを宣言および作成する Visual Basic .NET の新機能が使用されています。Visual Basic .NET では、次の 2 つのコードは同じものです。

Dim x As String = "こんにちは" 

および

Dim x As String
x = "こんにちは"

Google ライセンス キー、検索文字列、およびその他のパラメータが検索オブジェクトに渡され、結果オブジェクトが作成された後、estimatedTotalResultsCount プロパティを使ってラベルにデータが入力されます。この 4 行のコードを実行すると、Web 全体に対するプロシージャの呼び出し、Google 検索の実行、および検索結果件数の表示が行われます。

この例では、検索サービスの簡単な使用方法を示します。検索要求のパラメータおよび応答データの詳細については、Google が提供する参考資料を参照してください。

' Google 検索オブジェクトを作成します。
Dim s As New Google.GoogleSearchService()
' 検索メソッドを起動します。
Dim r As Google.GoogleSearchResult = 
   s.doGoogleSearch(txtLicenseKey.Text, txtSearchTerm.Text, 0, 1, _
   False, "", False, "", "", "")
' 検索結果の推定件数を取得して表示します。
Dim estResults As Integer = r.estimatedTotalResultsCount
lblSearchResults.Text = CStr(estResults)

リスト 1 – btnSearch_Click メソッド

Web ページのサイズを取得する

リスト 2 で示すように、Google サーバーでキャッシュされた Web ページのサイズは簡単に取得することができます。ここでは、doGetCachedPage メソッドが呼び出され、バイト配列に割り当てられます。次に、この配列に対して長さの表示が要求されます。

' Google 検索オブジェクトを作成します。
Dim s As New Google.GoogleSearchService()
' doGetCachedPage メソッドを起動し、キャッシュされたバイト数を取得します。
Dim bytes() As System.Byte = _
     s.doGetCachedPage(txtLicenseKey.Text, txtCachePage.Text)
' キャッシュされたページの長さを表示します。
lblCacheResults.Text = CStr(bytes.Length)

リスト 2 – btnCache_Click メソッド

スペル チェックを実行する

最後の Google メソッドでは、Google エンジンのスペル チェック機能を呼び出します。GoogleSearchService オブジェクトの doSpellingSuggestion メソッドが呼び出され、該当結果がある場合には、結果が表示されます。

' Google 検索オブジェクトを作成します。
Dim s As New Google.GoogleSearchService()
' 正しいスペルの候補を要求します。
Dim suggestion As String = _
     s.doSpellingSuggestion(txtLicenseKey.Text, txtSpell.Text)
' 候補がある場合はそれらを表示します。
If suggestion Is Nothing Then
     lblSpellResults.Text = "<no suggestion>"
Else
     lblSpellResults.Text = suggestion
End If

リスト 3 – btnSpell_Click メソッド

例外処理について

ダウンロードされたコードの Try...Catch ブロックには、上記の各関数が含まれています (リスト 4 を参照)。このブロックを使用すると、SOAP Web サービスから返されるエラーをトラップし、MsgBox に表示することができます。最も一般的なエラーは、ライセンス キーの入力を忘れた場合に発生するエラーです。ライセンス キーを入手するには、「キットおよびライセンス キーの入手方法」を参照してください。

' Google 検索オブジェクトを作成します。
Dim s As New Google.GoogleSearchService()
Try
    ' doGetCachedPage メソッドを起動して、キャッシュされたバイト数を取得します。
    Dim bytes() As System.Byte = _
        s.doGetCachedPage(txtLicenseKey.Text, txtCachePage.Text)
    ' キャッシュされたページの長さを表示します。
    lblCacheResults.Text = CStr(bytes.Length)
Catch ex As System.Web.Services.Protocols.SoapException
        MsgBox(ex.Message)
End Try

リスト 4 – 例外処理のある btnCache_Click メソッド

まとめ

Visual Basic .NET では、Web 上の Web サービスへの簡単なアクセス方法が提供されています。COM オブジェクトおよび ActiveX® コントロールを追加することにより Visual Basic 6 アプリケーションに新しい機能が追加されるのと同じように、Visual Basic .NET の機能を "トリックの詰まった鞄" として追加することにより、新しい種類の機能を提供できるようになります。また、特定事項に関する新しい情報が登録されていないかどうかを確認するために、Google のスペル チェック機能を Web ベースの掲示板または Web 自動モニタに追加することもできます。さらに、"VB Google API アプリケーション" という検索条件で Web を検索すると、他の Visual Basic 開発者が Google Web API を使用して作成したアプリケーションを検索することもできます。お楽しみください。

キットおよびライセンス キーの入手方法

Google Web API ツールキットにアクセスし、ライセンス キーを要求するには、http://www.google.com/apis/ (英語) にアクセスし、記載されている手順に従います。開発者用キットをダウンロードして、自分の Google アカウントを作成することができます。電子メールによるアカウントの検証後、1 日当たり 1000 件までの検索を無料で実行できるライセンスが付与されます。