twitter って最近すごい・・・?
最近、twitter ってブームですか?w
個人的にアカウントを作成したのがいつだったかよく覚えてませんが、最近勉強しつつあるAPIでXMLを取得するとその情報が残っていました。
<created_at>Tue Sep 09 05:40:50 +0000 2008</created_at>たしか、やりだした頃は、自分がつぶやいても一体誰が読むんだろう・・・なんて思ってたような記憶があります。
今や世界中に急速に広まっているようで、なんでもこの調子で増えると来月末位までには10桁を突破してしまうようなことが書いてありました(ユーザのIDなどの数値のタイプはいわゆる BIGINT にしなければならないらしいです)。
私のフレンドの中に外国人がいるんですが、どうやら女性なんですね(どういうきっかけで何もつぶやかない日本人をフォローし始めたのかは未だに分かりません)。最初は、どこの国の言葉かさえも分かりませんでした。翻訳サイトを開いて、順に変換していってようやくそれがポルトガル語であることに気付きました。でも正直、翻訳しても何を言っているのかは良く解らないんですねぇw(某翻訳サイトも、もう少し洗練させないといけない?)
twitter のwikiのページのリンクにあるBOTの紹介を見たとき、いろいろできるんだと思いました。
それから、軒並み「公式アカウント」というのも増えているようですね。企業情報のアナウンスにも多数利用されているのを見ると、もうすでに何か始動しているといっても良いでしょうね。
ということで、当社でも遅ればせながら、公式アカウントを設置致しました。
このサイトの更新情報や、研究開発の話題などをつぶやいて行きたいと思います。
この投稿の後、Twitterにアクセスできなくなったのですが、どうやらハッカーによってDOS攻撃を受けていた模様です(このコメントを入れている現在もつながりにくくなっている・・・)。
すっかりTwitterが依存してしている(生活の一部になっている)人も多いのではないかと思います。
こういうことがあると、そういう自分の姿があらわになるものですね・・・。w
twitter の公式アカウントを公開しました。
Size
1 kB
-
File type
text/html
twitter 公式アカウント
Size
1 kB
-
File type
text/plain
Twitter Developers Meetup in Tokyo
Twitter 開発者会議に参加・・・
今日(もう昨日か・・・)行われた「Twitter Developers Meetup in Tokyo」に参加してきました。
日本で開催されるのは初めてとのことで、会場には数十名に及ぶ開発者の皆さんが集まりました。(椅子が用意されましたが、後ろのほうで立たれている方が多数おられました)

Twitter 新機能のプレゼンテーション
主なテーマは、今後予定されているAPIの仕様変更(機能追加)に関するものが中心で、Matt Sanford さんによってプレゼンテーションが進められました。
- OAuth への対応
- ReTweet機能
- 位置情報
まだ何かあったかな・・・?
質疑応答も活発に行われまして、日本の開発者の皆さんのTwitterにかける熱い想いを感じることができました。
例えば日本のユーザから運用の中で生まれたというRETWEET機能に関しては、単に「こんなつぶやきがあったよ」とそれを広めるというような目的だけではなく、「おれはこう思うんだけど」というようなコメントを加える機能(日本の習慣的なもの?)が必要なので、そういうところも検討して欲しいというような意見が出されていました。
いろいろ質問してみた・・・
そのあと、椅子が撤収され、会場はフリーな感じでの交流風景になったのですが、私は一緒に参加していた今井さん(@imaiworks)と一緒にステージで個別応対しているMatt Sanford さんに質問をしに向かいました(ステージの上はすごい人の行列ができていました)。
Matt Sanford さんも、日本担当カントリーマネジャーの松沢さんも、丁寧に応対されていまして、凄く好印象でした。
「世界中の人が今まで以上にTwitterを使いだしたらサービス自体が心配になるんだけど・・・」というような質問を二人でしたんですがw、とにかく「安定した Twitter の基盤を築き上げることに徹していくので、そのあたりは心配に及ばない」とのことでした。
そりゃそうでしょ、8月の一斉DOS攻撃に対しても、見事撃退されましたし・・・。
更にAPI制限について質問したんですが、1時間150処理という回数の制限も、「将来は緩和する(増やす)方向になるでしょう・・・」という回答を頂きました。(^^)/
最後に・・・
スタッフの皆さん、有難うございました。
是非また、こういう機会を作って頂けたらと思います。
(来週の京都での会議も盛会になられることをお祈りします。)
集まって頂いた皆さん、楽しい一時を有難うございました。
皆さんと良い「Twitter文化」を作れたら・・・
twitter API / geoタグ!
早いもので10月ですね。
さて今朝、Twitter関連の新機能「Lists」が発表された模様です。これは、グループを定義して自分のタイムラインをグループ別に見る機能かなと思ったんですが、その登録情報すら必要に応じて公開が可能となるようです。それによって、フォロワーが新しいFriendを探すのに役立てたいというような狙いがあるとのこと。はたしてどんな反響を呼ぶでしょうか?
個人的には、分類しているということを他人に見られるのはどうかな?・・・と、少し躊躇してしまうように思うのですが、こういう新しいものはまた新しい感覚で使うものなのかも知れません。
そして、もしかしたらこれも今日から開始なのかも知れませんが、GEOタグをAPIの結果に見つけましたので、掲載しておきます。
これは、下記のコマンド(TwitterのAPI)を実行(WebブラウザからURLを入力)して得ることが可能です。
実行コマンド
http://twitter.com/account/verify_credentials.xml
下記のソースの太字にした部分が新しい仕様によって追加されたものです。
前回の開発者会議のときにも言及されていたのですが、先進的開発者の人たちが先行して使い始めるのかもしれませんね。
個人の設定を「有効」にすれば、 /user/geo_enabled が true になり、対応したアプリケーションで発言することによって /status/geo に緯度経度情報が埋め込まれるようになるのだと思われます。
取得したXMLのソース
<?xml version="1.0" encoding="UTF-8"?>
<user>
<id>59432888</id>
<name>Eternal Design Corp.</name>
<screen_name>eternal_design</screen_name>
<location>Tokyo</location>
<description>株式会社エターナルデザイン開発室のアカウント。
ブログなどの更新情報を発信しています。</description>
<profile_image_url>http://a3.twimg.com/profile_images/328020045/
icon_120x120_20080121_normal.jpg</profile_image_url>
<url>http://www.eternaldesign.jp</url>
<protected>false</protected>
<followers_count>4</followers_count>
<profile_background_color>f2eee4</profile_background_color>
<profile_text_color>3C3940</profile_text_color>
<profile_link_color>0099B9</profile_link_color>
<profile_sidebar_fill_color>95E8EC</profile_sidebar_fill_color>
<profile_sidebar_border_color>5ED4DC</profile_sidebar_border_color>
<friends_count>6</friends_count>
<created_at>Thu Jul 23 11:34:14 +0000 2009</created_at>
<favourites_count>2</favourites_count>
<utc_offset>32400</utc_offset>
<time_zone>Tokyo</time_zone>
<profile_background_image_url>
http://a3.twimg.com/profile_background_images/27400293/
eternaldesign_logo_270t.gif</profile_background_image_url>
<profile_background_tile>false</profile_background_tile>
<statuses_count>12</statuses_count>
<notifications>false</notifications>
<geo_enabled>false</geo_enabled>
<verified>false</verified>
<following>false</following>
<status>
<created_at>Thu Sep 10 17:23:42 +0000 2009</created_at>
<id>3891699292</id>
<text>ブログに「Twitter Developers Meetup in Tokyo」を掲載しました。
http://bit.ly/4tf4t</text>
<source>web</source>
<truncated>false</truncated>
<in_reply_to_status_id></in_reply_to_status_id>
<in_reply_to_user_id></in_reply_to_user_id>
<favorited>false</favorited>
<in_reply_to_screen_name></in_reply_to_screen_name>
<geo/>
</status>
</user>
どのようにして geo_enable を有効するかなどについては、まだ公開されていない模様です。
やがて全貌も明らかになっていくものと思われます。
(Twitter REST API Method: statuses update でサンプルが確認可能。しかしコメントには、「Not yet part of the current payload.[COMING SOON] 」と記載)
twitter API / Lists

リスト機能が有効になると、上図のようなガイダンスがホームのページの上部に現れるようになります。
前回の投稿で紹介したtwitterの新機能リスト(Lists)ですが、先週末の一部利用者への公開に続き、昨日もさらにベータ評価ユーザを増やした模様です。
昨日、めでたく私の個人アカウントで機能が有効になりました。
使い方に加え、APIも利用可能となっていることが確認できましたので報告してみたいと思います。
このリスト機能を使った効用については、すでに私がフォローしている@akihitoさんのサイトに詳しく記載されています。是非一度ご覧になって頂ければと思います。
リスト機能の凄いところは、公開されたグループ(Lists)を参照・利用したり、公開されたリストの中でフォローされているかどうかを確認できるなど、単なるグループ管理機能にとどまることがないところだと思います。
また、フォローしていなくても、自分のリストに加えることが可能になるなど、今までのフォロー中心主義?を超越し、twitterが新しい次元へ進むための起爆剤になるような予感がします。
データ作成方法
API検証を目的としたテストデータを作ってみましょう。
まず最初に名前を登録します。テスト目的なので、とりあえず非公開にします。

リストのメンバーですが、この登録方法には幾つかの方法があります。
ひとつは下図のように検索機能を使って結果表示画面から処理を行う方法です。

しかし、自分のフォロー済みユーザを登録するのにはふさわしくないので、「Following」をクリックします。リストに加えたいユーザで新しく追加されたツールを使うとメンバーの追加ができるようになります。

↓

この場合は、検索機能を使うか、もしくはそのユーザのタイムラインを表示した画面の先頭付近のツールからそれを行います。
twitterのCEOであるエヴァン・ウイリアムズさんを追加してみます。

↓

操作方法は同様にユーザタイムラインに自分を表示させて行います。


さぁ、表示させてみましょう。
サイドバーに表示されるリスト一覧から該当リストをクリックします。

意図したタイムラインを表示させることができるようになりました!
APIによるデータの確認
まず、APIに関する仕様については、ドラフトのページが現時点では最新かと思います。
紹介してあるサンプルを次のように変更することによって、ほぼ問題なく情報が取得できました。
screen_name : noradio → muka_
list_name : tall-people → test1
ただ、細かいパラメータの指定に関する記述が殆ど無いので、あくまでもドラフトなのでしょう・・・。
- リスト一覧の取得
作成しているリストの一覧の取得は下記のように指定します。
http://twitter.com/muka_/lists.xml
戻り値は、新しい形式(/lists/list/~) です。
下の図はブラウザで結果のXMLを表示させたものです(並んでいる他の2つの要素は絞り込んでいる)。
- リストメンバーの取得
リストtest1のメンバーの取得については、下記のように指定します。
http://twitter.com/muka_/test1/members.xml
戻り値は、新しい形式(/users_list/users/user/~)ですが、/users_list/users 以下は/statuses/friends の結果と同様の形式です。 - リストメンバーの詳細情報
リストtest1の特定メンバー(eternal_design=59432888)に対する情報の取得については、下記のように指定します。
http://twitter.com/muka_/test1/members/59432888.xml
戻り値は、users/showなどの結果と同様の従来形式(/user/~)です。 - タイムラインの表示
リストを使用したタイムラインの取得は下記のように指定します。
http://twitter.com/muka_/lists/test1/statuses.xml
戻り値は、ステータス取得のAPIと同様(/statuses/statusを返す)なものです。
なお、通常の「statuses/home_timeline」などで使用可能なパラメータについては、下記のものが使用可能であることを確認しました。
pageパラメータを指定しない場合は、「page=1」が暗黙値で、最新の20件のみが返るようです。
countは、指定しても無視される模様です。
ヘッダによる取得日付範囲の指定については未確認です。
利用可能なパラメータ
- since_id=ステータスID
- max_id=ステータスID
- page=ページ番号
- count=ステータス数
まとめ
ちょっと使ってみた感じとしては、思っていたより割と簡単にリストが作れたので、まぁまぁ良いのではと思いました。
また、リストを使ったタイムラインの表示のレスポンスも良く、ほぼ実用レベルではないかと思いました。
APIについても現状の仕様は最小限レベルだと思いますが、アプリケーションへの組み込みは十分可能ではないかと思いました。
ただ、ベータ版なせいか、メンバーの設定が思うように更新できないことがありました(チェックをいれると更新状態を示す風車が回るけど、しばらくたってもチェックが入らない等)。
現状の状態だと、かなりストレスを感じてしまうので改善を期待したいところです。
また、APIにしても、作成したリストの情報を取得するものが主ですが、リストの作成・編集に関するものも是非公開して欲しいと思いました。(もしかしてもうあるのかな?)。
仕様に関してはドラフトレベルではなくて、早急に正式なものを公開して欲しいです!
追記
「count」パラメータの代わりに、「per_page=件数」というパラメータが指定ができるようです。
これにより、1ページ当たり最大200件まで件数を指定して取得が可能になった模様・・・。
(ページの指定は、「page」パラメータにより・・・)
- Category(s)
twitter API / Retweet の仕様が・・・
List機能を調べていて気付いたんですけど、APIで返ってくるRetweetに関するXMLの構造がドラフトで公開されている情報と微妙に異なっている模様です。
まず、ドラフトのページでサンプルとして挙げられているソースをXMLスキーマとして図に示すと次のようになります。

ところが実際は、違った構造に変わっていました。
次のソースは、「/statuses/home_timeline」を使用して実際に取得したものです。
<?xml version="1.0" encoding="UTF-8"?>これを同じくXMLスキーマで図示すると下図のようになります。
<statuses type="array">
<status>
<created_at>Thu Oct 29 16:48:39 +0000 2009</created_at>
<id>5263226419</id>
<text>RT @kevinhendricks: The best way to avoid DM phishing on
Twitter? Don't automatically follow everyone who follows you.</text>
<source>web</source>
<truncated>false</truncated>
<in_reply_to_status_id/>
<in_reply_to_user_id/>
<favorited>false</favorited>
<in_reply_to_screen_name/>
<retweeted_status>
<created_at>Thu Oct 29 16:20:19 +0000 2009</created_at>
<id>5262542304</id>
<text>The best way to avoid DM phishing on Twitter? Don't automatically
follow everyone who follows you.</text>
<source><a href="http://www.hootsuite.com"
rel="nofollow">HootSuite</a></source>
<truncated>false</truncated>
<in_reply_to_status_id/>
<in_reply_to_user_id/>
<favorited>false</favorited>
<in_reply_to_screen_name/>
<user>
<id>6459792</id>
<name>Kevin D. Hendricks</name>
<screen_name>kevinhendricks</screen_name>
<location>St. Paul, MN</location>
<description>Work: Writer/editor, content guru & Internet
geek. Family: Husband, dad, dogs. Distractions: Public art, U2 &
yo-yos. Needs: Love, hope & grace.</description>
<profile_image_url>
http://a3.twimg.com/profile_images/489534755/twitter_normal.jpg
</profile_image_url>
<url>http://www.kevindhendricks.com</url>
<protected>false</protected>
<followers_count>1171</followers_count>
<profile_background_color>9ae4e8</profile_background_color>
<profile_text_color>000000</profile_text_color>
<profile_link_color>0000ff</profile_link_color>
<profile_sidebar_fill_color>e0ff92</profile_sidebar_fill_color>
<profile_sidebar_border_color>87bc44</profile_sidebar_border_color>
<friends_count>369</friends_count>
<created_at>Thu May 31 02:36:09 +0000 2007</created_at>
<favourites_count>338</favourites_count>
<utc_offset>-21600</utc_offset>
<time_zone>Central Time (US & Canada)</time_zone>
<profile_background_image_url>
http://a3.twimg.com/profile_background_images/
4439633/background2.gif</profile_background_image_url>
<profile_background_tile>false</profile_background_tile>
<statuses_count>5336</statuses_count>
<notifications/>
<geo_enabled>false</geo_enabled>
<verified>false</verified>
<following/>
</user>
<geo/>
</retweeted_status>
<user>
<id>20</id>
<name>Evan Williams</name>
<screen_name>ev</screen_name>
<location>San Francisco, CA, US</location>
<description>CEO of Twitter</description>
<profile_image_url>
http://a1.twimg.com/profile_images/66154838/ev-sky_bigger_normal.jpg
</profile_image_url>
<url>http://evhead.com</url>
<protected>false</protected>
<followers_count>1176029</followers_count>
<profile_background_color>C0DEED</profile_background_color>
<profile_text_color>301630</profile_text_color>
<profile_link_color>b30000</profile_link_color>
<profile_sidebar_fill_color>e8e2c5</profile_sidebar_fill_color>
<profile_sidebar_border_color>6f7578</profile_sidebar_border_color>
<friends_count>915</friends_count>
<created_at>Tue Mar 21 21:02:31 +0000 2006</created_at>
<favourites_count>1224</favourites_count>
<utc_offset>-28800</utc_offset>
<time_zone>Pacific Time (US & Canada)</time_zone>
<profile_background_image_url>
http://s.twimg.com/a/1256778767/images/themes/theme15/bg.png
</profile_background_image_url>
<profile_background_tile>false</profile_background_tile>
<statuses_count>4691</statuses_count>
<notifications/>
<geo_enabled>false</geo_enabled>
<verified>false</verified>
<following/>
</user>
<geo/>
</status>
・・・ 省略
</statuses>
まず、要素名「retweet_details」が「retweeted_status」に変わった模様です。

更に、その下位の要素が「/statues/status」配下の要素と相似関係となりその殆どが同名で参照するように変わっています。
例えば、ステータスidが以前は「retweet_id」でしたが「id」に、作成時刻が以前は「retweeted_at」でしたが「created_at」に、ユーザの情報が以前は、「retweeting_user」でしたが、「user」に、要素の並びも同じになったといっても良いでしょう。

これによって、ユーザ情報をあらわす「/statuses/status/user」や「/statuses/status/user/retweeted_status/user」は、いずれもスキーマ上の同じグローバルな「user」要素を参照できるようになりましたし、並んでいる他の要素のメンバーも同じになることによってコーディングも楽になったと言って良いでしょう。
関連を表す情報として、「/statuses/status/id」と「/statuses/status/retweeted_status/id」を記録することにより、Retweetのスレッド表示などが可能になりそうです。
ちなみに、下記の新しく追加される予定の仕様については、現状使うことができませんでした。
(もう間もなくでしょう・・・?)
だんだんと、楽しくなってきますねぇ・・・!
- statuses/retweeted_by_me
- statuses/retweeted_to_me
- statuses/retweets_of_me
- Category(s)
