読者です 読者をやめる 読者になる 読者になる

Twitter連携アプリを利用するなら知っておきたい108のこと


文責:ウェブ研プログラマー

はじめに

ここ数日で話題になっているTwitter連携アプリに「日頃の行いおみくじ」がありますが、「日頃の行いおみくじはスパムだ!」というツイートが拡散されまくって悲しい感じになっています。
ウェブ研でもTwitter連携アプリを作成していますし、あらぬ誤解をうけるアプリケーションが減ればいいな(ついでに宣伝もできればいいな)と思い、ユーザ向けに、OAuthを利用したコラボアプリのものすごくざっくりとした解説記事を書いてみました。
次のような構成になっています。
・OAtuhのものすごくざっくりとした説明
Twitter連携アプリ固有の話
・ユーザはどうしたらいいか
※随所にウェブ研の宣伝が散りばめられてます

お、OAuth…?

Twitterアカウントでログイン、FacebookアカウントでログインといったことができるアプリケーションではOAuthという規約が使われています。
OAuthでは3人の登場人物がいます。

  1. 大元のサービス(TwitterFacebook等)
  2. 連携アプリケーション(今日のスタンドチョイQ即興小説トレーニング等)
  3. ユーザ

ものすごくざっくりと言うと、いわゆるOAuth認証では
「ユーザの同意のもと、ユーザが許可している間、大元のサービスでの一部の『何かをできる権限』を連携アプリケーションに渡す」
という事(認可)が行われています。これを安全に行うための工夫がなされていますがここでは省きます。
渡しているのは「何かをできる権限」であって「大元のサービスのパスワード」ではないので連携アプリケーションはパスワードを知りませんし、何でもできるわけではありません
しかし、その気になれば「何かをできる権限」の範囲内では何でもできるということになります。

Twitter連携アプリケーションの場合

Twitter連携アプリ作成のためにTwitterが提供してるTwitter APIの場合、
「何かをできる権限」が段階的な3種類しか用意されてません

  1. 読み込みのみ
  2. 読み込みと書き込み(DM含まず)
  3. 読み込みと書き込み(DMを含む)

Twitterデベロッパーサイト

実際に行えること、連携アプリの認証画面は
1.読み込みのみ
タイムライン、リスト、ユーザのプロフィール、フォローしてる人、フォロワー、ブロックしてる人を見る等

2.読み込みと書き込み(DM含まず)
1に加えてツイートの投稿、削除、リストの作成、削除、リストへのユーザの追加、削除、フォロー、フォロー解除、ブロック、ブロック解除、プロフィール変更等

3.読み込みと書き込み(DMを含む)
2に加えてダイレクトメッセージの閲覧、送信、削除

となります。
このように多くの権限がセットになっているため、Twitter連携アプリケーションは必要以上の権限を委譲してもらわざるをえない状況にあります

ちなみに、いままでのTwitter API v1.0では「今日の一文字」のように読み込みの一部は認証しなくても使えますが、今年2013年の3月5日からは完全にTwitter API v1.1に移行し、ツイート情報を使うアプリでは全て認証が必要になります。認証なしでも使えるのは「桶屋」のように、ツイート情報を使わないで、ツイートはTwitterを使って行う、といったものになります。

ユーザはどうしたら?

安易に認証せずどれだけの権限を渡しているのかをよく見る

必要以上の権限を要求してくるアプリケーションは疑ったほうが良いですが、即スパム認定は早計です。仕様上、仕方のない場合もあります。パスワードを渡すわけではないので、アカウントが完全に乗っ取られるということはありませんが、前述のとおり、その気になれば渡した権限の範囲内では何でもできてしまうので認証は慎重に。

アプリケーション作成者が信用できるか調べてみる

ウェブ研は信用できるのでこの壺を(ry

認証してしまったが信用出来ないと思ったらすぐに連携を解除する

連携を解除すればその後アプリケーションは何もできません。渡した権限で見れる情報のなかにパスワードが書いてあるのでもない限り、パスワードを変更する必要はありません。

利用しなくなったアプリケーションは連携を解除しておく

Twitterの場合連携しているアプリケーション一覧はここからみることができます
https://twitter.com/settings/applications



以上です。
Twitterが、渡す権限をより細かい区分に分けてくれれば良いのですが、現状では3段階の内から選ぶしかありません。
信用を得るためにも開発者側も、区分の中でもどの権限を使うのかということを明記した方が良いですね。ウェブ研のアプリケーションにも早急に追加したいと思います。

日頃の行いおみくじ」がスパム認定されたのには挙動が不安定だったこともあったようですが、
かく言うウェブ研も「今日のスタンド」で短い間でしたが意図せず矢を撃ちまくってしまったことがあったので他人事ではありませんでした。
http://togetter.com/li/394932
ネタにしてくれるおおらかな方で良かったのですが、その節は本当にご迷惑をおかけしました。もちろん現在はこのようなことが起こらないようにサーバ移転し、コードも修正してあります!

あ、あとついでにもう一つ宣伝させてもらうと
「より良い作品を創れるようになるのに最も効果的な方法は、一度生み出したものを大事にすることでなく、何度も生み出し、『生み出す』ことにおいて上達することである」
という思想のもとにWebサービスを作りました。
即興小説トレーニング」、「即興イラストトレーニング」です。
与えられたお題、制限時間で作品を創り、同じ時間帯に挑戦した人は同じお題という、歌会のような形式になっています。ものすごいドキドキ感で、創作クラスタの方はもちろん、普段創作をしない方でも楽しめるサービスになってると思います。

宣伝ばっかりでサーセンwww