2010-11-02

Flashでtwitterから低負荷でアイコンを取得する方法(東京てら子発表資料)

10/31の東京てら子で、発表してきました。
資料公開すると約束してたので、公開します。
本当はパワポをそのまま上げようと思っていたんですが、資料は2部構成でみんな興味があるのは後半っぽかったので、後半を抜き出した上で、色々スペルミスとか口頭で説明した内容を追加して、Blog記事として載せることにしました。
文章はパワーポイントからのコピペと、画像と入り混じってますがご容赦を



twitter関連のFlashコンテンツを作る機会が増えてますが、CGI作る手間もかかるし、ユーザーが離脱する可能性が出てくるので、できればOAuthしたくないところです。
でも、twitterからアイコンを取得するのって
意外と面倒なんですよね。

・API制限が・・・

1時間に50回くらい?
同一IPからのアクセスで制限
search.twitter.comに限っては
150回くらい?らしい。
→後で重要になります。覚えておいてください。

・サーバー負荷が・・・

twitterサービスは瞬間風速がハンパない
DotWarはピーク17万/日アクセス

・crossdomain.xmlが・・・

<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation=
"http://www.adobe.com/xml/schemas/PolicyFile.xsd">
<allow-access-from domain="twitter.com" />
<allow-access-from domain="api.twitter.com" />
<allow-access-from domain="search.twitter.com" />
<allow-access-from domain="static.twitter.com" />
<site-control permitted-cross-domain-policies="master-only"/>
<allow-http-request-headers-from domain="*.twitter.com"
headers="*" secure="true"/>
</cross-domain-policy>

twitter.comも、api.twitter.comも外部から許可してない。
(apiくらい、してくれたらいいのに・・・)
ただし、外部向けにアイコンを提供してくれる
a0.twimg.com?a5.twimg.comは

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

つまり、画像のURLさえわかってしまえば直接取得できる。
(実際にはDotWarではキャッシュを取るために1度CGIを経由しているが)
以上の問題を踏まえて、
画像URLを取得する3つの候補

1つずつ紹介します

利点

欠点

利点

欠点

利点

欠点


どれも欠点がある

じゃあどうする?


負荷が低い方法から使う
取得できなかったら次の方法を試す。
それぞれの取得方法は、アクセス先が違うので負荷の分散にもなる。
実装は面倒くさいが、効果は高いはず

DotWarでは、この複合取得で運用 その結果・・・

やっぱ落ちました・・・。
とはいえ、
落ちたといっても、503が数回のみ。
アクセス数のわりには、頑張れたほうなのではないでしょうか。
以上、参考にしてください。


資料は以上ですが、実は当日考えていたネタで、時間の都合上削ったものがあります。
それは、search.twitter.comの応用利用についてです。
DotWarの入力フィールドの横には、randomというボタンがついていますが、
実はこれ完全なランダム入力ボタンではありません。
友人が出やすくなるように調節されています。
この友人というのは、フォロワーではありません。
そもそも、フォロワー≠友人ではないですよね、有名人とかだったり。
twitterのマーケティングを成功させるには、有名人ではなく、気軽に会話するような相手が入力されることが望ましいわけです。
そこで、「@ユーザー名」で検索した内容から、ヒットしたユーザーを抽出して使っています。
つまり、最近会話したことのある相手、ということになります。
この仕組みはシングルモードのステージ構成にも使われていて、特に最初とラスボスが友人になるように仕組まれています。
「最後が○○さんだった!」というツイートもちらほらあり、してやったりという感じでした。
当日別の発表でもちらほら、search.twitter.comの使い方について発表がありました。
(資料が出るかどうかはわかりませんが)
結構応用が利くので、色々試してみると面白いと思います。

  • コメント
  • 2
  • トラックバック
  • 0

コメント

  1. Aok より:

    アイコン取得部分のソースコード公開とかは予定ありませんか?JSでの実装がよくわからないのですが……

コメントする

ブログトップへ