2012年2月28日火曜日

エンドユーザには多分謎なtwitterの仕様?

学生さんとミーティングしている時に、ふと脱線して言っていたことを改めて、まとめてみます。

twitterってもともとシンプルが命だと思うんですが、でも内部の機構を理解していないとわかりにくい部分がいくつもあると思う次第。で、以下に列挙しましょう。

  1. Replyには内部リンクがあってTLへの表示に影響します。リプライとしてツイートするとそのツイートには内部的にリプライした元のツイートへのリンク情報が入っています。多くのクライアントはそれを「In reply to…」のように表示したり、そのリンクをたどれるようになっています。 で、通常TLには自分がフォローしてない人宛のリプライは表示されませんが、それは(1)ツイートの先頭に@付きでフォローしてない人のアカウントが指定されている場合、以外に(2)内部リンク先のツイートが自分がフォローしてない人のものだった場合、もあることです。で、公式Webやクライアントによっては先頭が@なんとやらでなくてもリンク情報つけてしまうので、@なんとやらで始まってなくても見えないとかいうことが起きる次第ですね。
  2. @なんとやらで書くアカウント名は、実はユーザIDではなくscreen_name(表示名)で変更ができます。ユーザIDは内部的に別にあって、一回登録したアカウントでもこの名前は変えられるのはプロフィール編集ページで分かると思います。で、問題は表示名を変更するとツイート内に書かれている「@表示名」の方は変わってしまうので、それまでのものが繋がらなくなるということが起きるのですが、ユーザIDとしては変わってないので、フォロー関係などは維持されているし、もちろん上記のツイートの内部リンクも残っています。これはややこしい。なので、フォロー関係も一切リセットしたい場合は、ユーザ登録を改めてやり直さないとこの名前の変更だけではできないということですね。
  3. 過去のツイートはシステムから削除されているわけではなく、今のところ全部残っています。3200件というのはツイートをさかのぼって連続して取り出す際の上限なだけです。ツイートのID(番号)さえわかれば取り出せる次第。まぁ問題はその番号をどうやって記録するかですが。例えば、私のツイートは既に万を超えていますが、最初のツイートはhttp://twitter.com/tsaka1/status/6205172765で取り出せます。逆にいうと自分で取り出せないからと思っていると他人はちゃんと取り出せるということになるかも知れません。過去がなかったことにはならないのでご用心というわけですね。(米国議会図書館での保存のことは別問題)
  4. 特定の一つのツイートを指定するURLですが、上記の形式の他、https://twitter.com/#!/tsaka1/status/6205172765のような形式も使えます。問題はこのうち表示名の部分は別に誰の表示名でも良いことですね。上の例で言えば、http://twitter.com/sakalabLectures/status/6205172765と指定しても同じツイートが表示されます。#!付きも同様にhttps://twitter.com/#!/sakalabLectures/status/6205172765でもOk(?)です。なので、そのツイートが誰が書いたものかはURLだけでは判断できません。リンク先のページを見て判断する必要があります。なので、こんなhttp://twitter.com/tsaka1/status/20こともできます(良い子は真似しないように:-)
とりあえず目立つのは以上かな。OAuthのこととかもあるけど、単体として気になるのはね。ちなみに「世界最初のツイート」についてはWikipediaを参照しました→http://en.wikipedia.org/wiki/Twitter#cite_note-Dorsey2006-13