システム開発ブログ/ ソフトウエア開発部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

VB.NETでGoogleカレンダーのXMLを取得する

牧野
牧野 (2010年5月19日 18:00)
ソフトウエア開発部 / .NET
Googleカレンダーでは、外部アプリケーションからカレンダーのデータを参照する為の
URLが用意されています。
データ形式は[XML][ICAL][HTML]の3種類があります。
加えてデータの公開範囲2種類あり、一般公開されるURLと
自分だけが参照する限定公開URLがあります。

今回はVB.NETで[XML]形式データを参照し、データの取得を行います。

[XML]形式でGoogleカレンダーのデータを参照するだけであれば、非常に簡単です。

データを参照するコードは以下の通りです。
ここでは、カレンダーに登録されているデータのタイトルの一覧を取得しています。
Imports System.Xml

Module Module1

  Sub Main()
    Dim Instance As New XmlDocument
    Dim NamespaceMng As XmlNamespaceManager
    'XML名前空間
  Const XML_XMLNS As String _
      = "http://www.w3.org/2005/Atom"
    'データ取得用に任意の名前空間を指定
  Const XML_NAME_SPACE As String _
      = "GoogleCalendarNameSpase"

    ' GoogleCalenderのXMLデータを取得
    'Loadの引数はGoogleカレンダーの設定画面から取得できるXMLアドレス
  Instance.Load("http://www.google.com/calendar/feeds/<ユーザー情報>/private-<ランダム文字列>/basic")
    NamespaceMng = _
      New XmlNamespaceManager(Instance.NameTable)

    ' 名前空間の設定
    NamespaceMng.AddNamespace(XML_NAME_SPACE, XML_XMLNS)

    '各entryのタイトルを取得
    Dim TitleList As XmlNodeList _
      = Instance.SelectNodes( _
          XML_NAME_SPACE & ":feed/" _
        & XML_NAME_SPACE & ":entry/" _
        & XML_NAME_SPACE & ":title" _
        , NamespaceMng)

    'コンソールに出力
    For Each node In TitleList
      Console.WriteLine(node.innerText)
    Next
    '入力待ちで停止
    Console.ReadLine()

  End Sub
End Module

本来ならば、IDやPasswordを使用して、iGoogleに対してログイン処理が必要ですが、
取得するURLを限定公開URLで指定する事で、
ログインIDやパスワード等の設定が不要となります。

URLを指定してしまえば、後は取得したデータに対して任意の名前空間を指定し、
XPathを使用してアクセスをするだけです。
サンプルでは、"GoogleCalendarNameSpase"として割り当てました。

サンプルコードをコンソールアプリケーションとして作成すると、
コンソール画面にカレンダーに登録されているデータのタイトル一覧が表示されます。

ただし、XMLのURLの末尾が[basic]である場合、
簡易的なデータを参照することになります。
そのため、定期的な予定のデータが省略されていたり、
アラームの設定等の情報が切り捨てられていたりします。
これらの情報を全て正しく取得するには、
XMLのURLの末尾を[basic]から[full]に変更してアクセスする必要があります。

fullデータを参照する場合や、
データに編集を加えるには、Google公式のAPIを使用しなければならないなど
少々面倒になってきますが、データの参照だけであればこのように簡単に実現できます。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。