Hatena::Groupnadesiko

そっとなでしこ RSSフィード


メインのブログに書くまでもない、なでしこ学習帳【記事一覧】 【このブログは何?】


特設!→【目次】なでしこ用Twitter 連携ライブラリ「なこったー」で遊ぶ


2010-09-14

「なこったー」で指定したユーザーのタイムラインを取得する

| 「なこったー」で指定したユーザーのタイムラインを取得する - そっとなでしこ を含むブックマーク はてなブックマーク - 「なこったー」で指定したユーザーのタイムラインを取得する - そっとなでしこ

 日本語プログラミング言語「なでしこ」用Twitter 連携ライブラリ「なこったーの「ユーザTL取得」関数を使用し、Twitter APIの「statuses/user_timeline」 APIを呼んでみるサンプルです。

【関数】ユーザTL取得({ハッシュ=?}PARAMで{文字列}SCREEN_NAMEの)~

 今回使用する関数は、「ユーザTL取得」関数です。

■説明

 Twitter APIの「statuses/user_timeline」 APIを「なでしこ」から呼び、指定したユーザーのツイート一覧(タイムライン)を取得する関数です。

 「statuses/user_timeline」 APIについては以下の通りです。

自分の過去3200件分のステータスから最大20件(count引数使用時は最大200件)を取得する。

id, user_id, screen_name のいずれかの引数を指定すれば、そのユーザのステータスを取得できる

Twitter API 仕様書 日本語訳

http://watcher.moe-nifty.com/memo/docs/twitterAPI.txt

 「statuses/user_timeline」 APIは、取得対象のユーザー指定を省略可能であり、省略した場合は自分自身のタイムラインを取得します。しかし、「ユーザTL取得」関数は、引数「SCREEN_NAME」で必ず「ユーザー名(screen_name)」あるいは「ユーザーID番号(user_id)」によって取得対象のユーザーを指定する仕様です。

■引数

詳細は、「Twitter API 仕様書 日本語訳」等を参照のこと。

  • {文字列}SCREEN_NAMEの
    • 必須です。取得対象となるタイムラインのユーザーを「ユーザー名(screen_name)」あるいは「ユーザーID番号(user_id)」で指定します。
  • {ハッシュ=?}PARAMで
    • 省略可能です。今回のサンプルでは使用していません。
    • ハッシュ形式で以下の項目を指定できます(例:パラムとはハッシュ。#パラム@「count」=200。)
      • count=件数
        • 指定した件数分、言及を取得。ただし、200 より大きな値は指定できない
      • since=日時
        • 指定した日時以降に update されたステータスを取得。
          • 日時の書式は、メールで使われるRFC822形式(例:Mon, 13 Sep 2010 17:26:38 +0900)←なでしこで扱うのは面倒臭そうw
      • since_id=ステータスID
        • 指定したステータスIDより大きな値のIDの言及を取得 (指定したIDは取得対象外)
      • max_id=ステータスID
        • 指定したステータスID以下の値のIDの言及を取得 (指定したIDも取得対象内)
      • page=ページ番号
        • (1ページを20件とみなしたときの)ページ番号を指定することで、過去の任意の言及を20件単位で取得
      • trim_user=はい(=1) (または trim_user=t, trim_user=1)
        • 本引数を指定すると、ステータス情報に含まれる(そのステータスの投稿者の)ユーザ情報をユーザID(数字)のみに
      • include_rts=はい(=1) (または include_rts=t, include_rts=1)
        • 本引数を指定すると、retweet も取得対象に
      • include_entities=はい(=1) (または include_entities=t, include_entities=1)
        • 本引数を指定すると、ステータス情報に entities という情報を含むように
■戻り値

Twitter APIへの問い合わせに成功した場合に取得した値は、ハッシュテーブルの配列に格納されて戻ります。

詳細は、以下を参照。

■ソースコード

 サンプルでは、「なでしこ」の公式Twitterアカウント「nadesiko」のツイート一覧(タイムライン)を取得しています。

 取得したタイムラインは、「なでしこ」のGUI部品「グリッド」で一覧表示しています。この一覧表をダブルクリックするとWEBブラウザが起動し、そのツイートを表示します。

※「OAuth認証設定」部分を、事前に取得した「コンシューマ・キー」と「コンシューマ・シークレット」、「アクセストークン」と「アクセストークンシークレット」に書き換えて実行して下さい。

#-----------------------------------------------------------------------
# OAuth認証設定
#-----------------------------------------------------------------------
# Twitterにアプリケーション登録した際に発行された
# 「コンシューマ・キー」と「コンシューマ・シークレット」を設定
CONSUMER_KEY=「****」。
CONSUMER_SECRET=「****」。
# 「アプリケーションのアクセス許可」&認証で発行された
# 「アクセストークン」と「アクセストークンシークレット」を設定
OAUTH_TOKEN=「****」。
OAUTH_TOKEN_SECRET=「****」。
#-----------------------------------------------------------------------


!「nakotter.nako」を取り込む
なこったークライアントとはNakotter。
そのoauthのコンシューマのトークンキー = CONSUMER_KEY。
そのoauthのコンシューマのシークレット = CONSUMER_SECRET。
そのoauthのトークンキー = OAUTH_TOKEN。
そのoauthのシークレット = OAUTH_TOKEN_SECRET。

ツイートグリッドとはグリッド。
ツイートグリッドについて
 レイアウトは「全体」

ツイートリスト=「ユーザー名,ユーザ名称,ツイート,投稿日時,ID」。

なこったークライアントから「nadesiko」のユーザTL取得して反復
 TEXTは、対象@`text`を出力変換処理。
 ツイートリストは、「{ツイートリスト}{~}{対象@`user`@`screen_name`},」&
 「{対象@`user`@`name`},{TEXT},{対象@`created_at`},{対象@`id`}」

ツイートグリッドのアイテムはツイートリスト。
そのダブルクリックした時は~
 それはツイートグリッドのテキスト。
 ツイートURL=「http://twitter.com/{それ\0,0}/status/{それ\0,4}」。
 ツイートURLを起動。#ブラウザが起動


●出力変換処理(対象文字列を)
 対象文字列は、対象文字列の「\n」を「 」へ正規表現置換。
 対象文字列は、対象文字列の「,」を「、」へ正規表現置換。
 対象文字列で戻る。