Hatena::Groupnadesiko

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


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


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


2010-08-30

「なこったー」で自分への言及ツイート(mentions)を取得&グリッド表示

| 「なこったー」で自分への言及ツイート(mentions)を取得&グリッド表示 - そっとなでしこ を含むブックマーク はてなブックマーク - 「なこったー」で自分への言及ツイート(mentions)を取得&グリッド表示 - そっとなでしこ

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

【関数】返信取得({ハッシュ=?}PARAMで)~

 今回使用する関数は、「返信取得」関数です。

■説明

 Twitter APIの「statuses/mentions」 APIを「なでしこ」から呼び、自分に対する言及の一覧を取得する関数です。

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

自分に対する言及(@ユーザ名 が含まれるステータス)の一覧を取得する (最大20件)

Twitter API 仕様書 日本語訳

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

■引数

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

  • {ハッシュ=?}PARAMで
    • 省略可能です。今回のサンプルでは使用していません。
    • ハッシュ形式で以下の項目を指定できます(例:パラムとはハッシュ。#パラム@「count」=200。)
      • since_id=ステータスID
        • 指定したステータスIDより大きな値のIDの言及を取得 (指定したIDは取得対象外)
      • max_id=ステータスID
        • 指定したステータスID以下の値のIDの言及を取得 (指定したIDも取得対象内)
      • page=ページ番号
        • (1ページを20件とみなしたときの)ページ番号を指定することで、過去の任意の言及を20件単位で取得
      • count=件数
        • 指定した件数分、言及を取得。ただし、200 より大きな値は指定できない
      • 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側の問題で、「include_rts=trueパラメータ」は機能していないような気が…

  


mametanuki

twitter apiのinclude_rts=trueパラメータでRT(http://twitter.com/mamenakotter)が取得できない…orz ぐぉおお、もう寝るw
(2010/09/05 22:51:25)

link

■戻り値

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

詳細は、以下を参照。

■作成したサンプルについて

 機能はこんな感じ。

  • 自分のアカウントへの言及ツイートを取得し、グリッド表示
  • 任意の行をダブルクリックすると、その行のツイートをポップアップ表示
  • グリッド表示の仕様の関係で…
    • 改行は「 」(全角空白文字)に置換(改行文字以下が次の行に表示されるのを防ぐため)
    • 「,」は「、」に置換(「,」以下が次の列に表示されるのを防ぐため)

■ソースコード

※「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。

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

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

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

ツイートグリッドのアイテムはツイートリスト。
そのダブルクリックした時は~
 それはツイートグリッドのテキスト。
 ユーザー名は、それ\0,0。
 ユーザー名称は、それ\0,1。
 ツイートは、それ\0,2。
 投稿日時は、それ\0,3。
 「{ユーザー名}【{ユーザー名称}】{~}」&
 「{ツイート}{~}{投稿日時}」を言う。

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

 実はこれ、「自分のタイムラインを取得&グリッド表示」するサンプルのソースコードの「ホームTL取得」を「返信取得」に置換しただけのソースコードですw