SNS担当ミーティング その3
シーブレインのSNS担当として、普段はSNSに無関心な kouraku と、いつも実装に悩まされている fujihara が、半期目標達成のため急遽第3回SNS担当ミーティングを開きました。ということで、その様子を今回もかる~くご紹介します。
それでは、第3回SNSMTG始めまーす。
はい。
とりあえず、今回は前回の宿題「ネタを探す」、ということですが・・・ネタは見つけました?
えーっと、まぁネガティブな話ですが・・・
ネガティブな話・・・?
APIで欲しい情報を取って表示する、ということをJSだけで行うことは現実的ではないので、そうなるとPHPなどサーバーサイド・スクリプトを使うことになるのですが・・・
ん、PHPを使えばAPIキーを使わなくていける・・・?そんなことはないか。
はい、そういうことではなく、JSだとAPIを使用するための access_token が見られてしまうので、ちょっと問題あるかな・・・と。
あぁ、なるほど。
結局、access_token ごとに制限があって、開発モードの場合はその制限が浅いんですよね。
アクセスしていい回数が決まってる、ってことだね。
はい、一定時間の範囲内ではあるのですが。
有料版とかあった場合、それを使えば解決するとか?
有料版でも厳しいみたいです。だから、PHPなどで一定時間ごとにDBなどに保存して、JSはDBの内容を見せるようにする、といった様な仕組みが必要になるのではないかな・・・と。
それって、あれか・・・。以前4人同時に同じサイトを制作していた時に、「Instagram」の画像表示が急にされなくなった、っていう件だね。レビュー環境だったから問題にはならなかったけど。
そうです。
一定時間内に同じ access_token で頻繁に情報取得を行ったのが原因だったっけ。
あの時は「Instagram」の「Sandbox mode」を使用していたので、特に落ちやすい環境でした。
「Instagram」の画像表示が急にされなくなったという状況は、つまり下図の様な状況です。
なるほど、だから直接APIキーを叩いて情報を取得しに行くのではなく、PHPなりで保存されたデータを見に行かせることで「落ちる」という危険を回避したい、ということか。
はい、そうです。
じゃあ、例えば「Instagram」に更新が入った場合って・・・どうなるの?更新が入ったことを検知して保存されているデータを更新する・・・???
いえ、そういうリアルタイム的なものを作るのではなく、一定時間ごとに、1分ごとでも良いと思うんですが、更新するような仕組みを作ればいいと思うんです。
そうか、1分毎でも1時間に60回のアクセスだから、さすがに「落ちる」ことはない・・・のかな?
はい。
その場合、access_token はどこに入れておけばいいのかな?
一般ユーザーがアクセスできない場所に、設定ファイルを置いとけば良いと思います。
上図のとおり、PHPなりで作成したデータを見るだけなら、APIキーで取得するような機能が落ちることはないでしょう。たとえ落ちたとしても、表面上は落ちたようには見えないはずです。
でも、DBとかはあまり使いたくないじゃないですか。そういった場合は、JSONなんかを吐き出して置いておけばいいのかな・・・と。
なるほど、それはいいね。
ただ、「Instagram」の画像表示系なら問題ないのですが、「いいね」とか「フォロー」の数を表示させるようなものの場合どうするか・・・ですね。
・・・ん?どういうこと?
例えば、だれかが「いいね」を押した時に、カウントアップするじゃないですか。その時「1増えた」という状況をどうするか、ということです。
そうか、さっきの方法だと、1分毎に更新だから即時に数字が反映されない、ってことか。
はい、そうです。だから、ブラウザ上のみ「1増えた」という状況を作れば良いか・・・と考えていたのですが、特に即時反映されなくても問題ない気がしてきました。
そうだね〜。即時でなくてもいい気がするな。30秒に1回取得しに行く・・・とかだと厳しいのかな。1時間に120回のアクセス・・・。
「Instagram」の「Sandbox mode」だと、1時間で500アクセスが制限内なので、問題ありませんね。
なるほど、てことは、10秒ごとに1回でも360回だからいけるんだね。・・・5秒はオーバーしちゃうか。
はい、そういうことになりますね。
この後、PHPとかサーバーサイド・スクリプトが使えない環境の場合どうしよう・・・とか、ちょっとだらだら話す感じになりまして、最終的に次のような展開でまとまりました。
ただ、ここまで話してきた内容って、まだ(できるという)確証が取れていないんですよね。
え?そうなの?
はい。
・・・なるほど。そしたら、検証して間違いないことを確認する、というのを次回MTGまでの宿題としましょう。
はい。
今回のMTGで、今期目標への道筋がなんとなく見えたような気がしてきました。
ということで、次回MTGでは fujihara の検証結果をご報告できればと思います。