SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Visual BasicによるTwitterプログラミング
.NETプラットフォームを使ってTwitterにアクセスする

シンプルなクライアントの作成

 では、画面にステータスを表示するシンプルなクライアントを作成してみましょう。このアプリケーションは2つの部分で構成されています。ステータスオブジェクトを表示するシンプルなWPFベースのListBox、そしてTwitterの複雑なXML/JSON形式を簡素化するクラスです。

 リスト2は、ステータスの更新を表すドメインオブジェクトです。このオブジェクトは3つのプロパティを備えています。メッセージテキスト、投稿者のスクリーン名、投稿者の画像のURLです。

リスト2 ステータスクラス
Public Class Status
   Private _Text As String
   Public Property Text() As String
      Get
         Return _Text
      End Get
      Set(ByVal value As String)
         _Text = value
      End Set
   End Property

   Private _ScreenName As String
   Public Property ScreenName() As String
      Get
         Return _ScreenName
      End Get
      Set(ByVal value As String)
         _ScreenName = value
      End Set
   End Property

   Private _ImageURL As String
   Public Property ImageURL() As String
      Get
         Return _ImageURL
      End Get
      Set(ByVal value As String)
         _ImageURL = value
      End Set
   End Property
End Class

 次に示すのは、本稿の冒頭で示したURLから取得したステータス更新を表示するListBoxのXAMLコードです。

   <ListBox IsSynchronizedWithCurrentItem="True" x:Name="lstResults" >
     <ListBox.ItemTemplate>
       <DataTemplate&gt;
         <StackPanel Orientation="Horizontal" >
           <Image Height="100" Width="100" 
             Source="{Binding Path=ImageURL}"/>
           <StackPanel>
             <TextBlock Text="{Binding Path=Text}"/>
             <TextBlock Text="{Binding Path=ScreenName}"/>
             <TextBlock Text="----------"/>
           </StackPanel>
         </StackPanel>
       </DataTemplate>
     </ListBox.ItemTemplate>
   </ListBox>

 次のコードは本稿で紹介した機能を組み合わせて、Twitterのデータのクエリと表示の両方を実行するようにしたものです。

   Dim TwitterLib As New TwitterLib
   Dim URL As String = _
            "http://.../statuses/user_timeline/rodpaddock.json"
   Dim Results As String = TwitterLib.GetTweet(URL)
   Dim JsonSerializer As New  _
          System.Web.Script.Serialization.JavaScriptSerializer
   Dim ReturnObject As Object = _
          JsonSerializer.DeserializeObject(Results)
   Dim StatusList As New List(Of Status)
   For Each StatusObject As Object In CType(ReturnObject, Array)
     StatusList.Add(New Status With _
        { _javascript:showSupportItem('listing2');
        .Text = StatusObject("text"), _
        .ScreenName =  StatusObject("user")("screen_name"), _
        .ImageURL = StatusObject("user")("profile_image_url") _
        })
   Next
   Me.lstResults.ItemsSource = StatusList

 このコードは、rodpaddockのタイムラインをJSON形式で返すよう要求し、JSONシリアライザを使用して、返されたデータを.NET配列に変換します。この配列はシンプルなPOCO(Plain Old CLR Objects)のリストに変換されます。このリストは、サンプルのWPFフォームで表示されます。

 このコードの実行結果を図2に示します。

図2 シンプルなTwitter WPFクライアント:Twitterに対してrodpaddockのタイムラインを要求した結果
図2 シンプルなTwitter WPFクライアント:Twitterに対してrodpaddockのタイムラインを要求した結果

まとめ

 Twitter APIは一見すると難しそうに見えますが、簡単なツールとテクニックを使って、わずか数分でアプリケーションをTwitterに対応させることができます。Twitterでフォローする相手を探している方は、以下をチェックしてみてください。

 Twitterのプログラミングについてさらに詳しい情報を求めている方は、以下のリソースを参照ください。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Rod Paddock(Rod Paddock)

 CoDe Magazine誌編集長。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4054 2009/06/29 18:17

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー