なんか最近やたらツイッターツールの売り込みメルマガきますね。値上げとかそんなんかなぁ?
実は、ダイレクトにこんな記事があるんですよ。
http://ameblo.jp/madokanooheya/entry-11150414579.html
えー、こちらのまどか@先生という方のブログは非常に中毒性が高く、
1日目「なんか面白い人だなぁ。書いていることも実践的だしお気に入りに入れよう」
2日目「そうだそうだ、あのブログ見に行こうと」
3日目「ブログを読まなきゃいけない気がする」
4日目「お願いですからブログを拝見させてください」
とわずか4日できさぶろうを虜にした恐ろしいブログです。こんなこと書くと後でコメ欄で怒られるかもしれない。だがそれがいい。
放っておくと話が壮大に脱線してしまいますのでこのくらいにしておきますが、こちらの記事に書かれているように、自動系のツールは基本的にサーバに負荷をかけられますので嫌われます。
仮に、自分が何かWEBサービスを立ち上げたとして、わけのわからんスパマーみたいな奴らが氾濫したらどう思います?イヤでしょ?
なので、どんなWEBサービスでもスパマーやbotを廃除するためにさまざまな対策をとってきます。ところが、WEBサービスによっては、わざわざスパマーが活躍しやすいようにAPIを残しているところも依然として多いんですよね。
今日はこの辺りのことを技術者の視点を交えながら考えてみたいと思います。
そもそもよく出てくる単語にAPIという言葉がありますが、これは何かっていうと、ブラウザ以外のインターフェイスを使用してサーバーと通信する規格だと思って下さい。
ちょっと難しいかもしれないのでツイッターを例にして簡単に説明しますと、ツイッターにログインしてフォロワー探したりツイートしたりって全部ブラウザから操作しますよね?
たとえばあなたがツイートボタンをクリックしたとします。
このとき、ブラウザからツイッターのサーバーに、「ツイートしたいんでお願いします」という内容の「リクエスト」と呼ばれるデータの塊が送られます。
それを受け取ったツイッターサーバーは、「OK、じゃ、これ送り返すから、人間がみて理解出来るように表示してよ」という返信データをブラウザに送ります。
そこにはあなたがツイートした後の表示画面の情報が入っています。それをブラウザが解釈して画面上に描画していると。
じゃAPIって何なのかというと、ブラウザを通さないで、サーバーと直接データのやり取りができるんです。
APIはブラウザと違い、必要最低限のデータ通信だけを行います。
これにより、「画像を表示する」「動画を再生する」「javascriptを解釈して実行する」等のサーバーやブラウザに負荷をかける処理を省略することが出来るので、通信の省エネ化をすることができます。
ま、要はAPIは軽いんですよ。普通の通信に比べて。まずこれが、ツイッター側のAPIを解放している利点のひとつです。
ただ、実質的にAPIを公開している理由はもっと別のところにあるんじゃないかな、ときさぶろうは思っています。
というのも、楽天にしてもツイッターにしてもブログサービスにしても、そんなにスパマー(アフィリエイター含む)がイヤなら、APIなんてやめてしまえばいいんです。
一部の大手サイトだけにAPIの使用認証させて、情報屋が作るようなツールを全部締めだせばいい。でもそれはしない。なぜか。
メリットがあるから、としか考えられません。楽天もツイッターもブログサービスも、営利企業ですから。
ちょっとまとめますと、APIを採用した場合のWEBサービス側のメリット、デメリットはこう。
デメリット① スパマー、アフィリエイターなどの過大アクセスによりサーバーに負荷がかかる
デメリット② さらにコンテンツとしての価値を汚される(アフィリエイターのツイートなんて情報としての価値は皆無)
メリット① 通信が軽い
メリット② デメリットを凌駕する計り知れないメリットがある
うん、疲れた。続きは明日。
あ、そうそう、ツイッターのツールって欲しい人いるかな?欲しい人がいたらあげてもいいと思ってます(みんてぃあさんとかいう人が推薦しているツールよりは高機能かと)。だけど、自分用なんで説明書がないんですよね。。。説明書作るのメンドイから何かモチベーションが欲しい。
ってことで、アメンバーさんが100人超えたらアメンバーさん全員に配ります。このくらいのモノでアドレス取ったり商売したりとかは考えてないんで、応援のつもりで登録してくれたら嬉しいな。