雑談

趣味プロ会@三茶のお知らせ

(English version is below the Japanese section) 最近は三茶周辺で土日の朝活として趣味プログラミング活動(趣味プロ)を行っています。 この趣味プロは今月6月に入ってから3、4人で始めて一ヶ月ほど経ちましたが、思ったより良い感じに進められているので大々的にメンバーをゆる募します〜。 (more…)

JS

NodeJS + Facebook JavaScript SDKを使ってサーバー側で認証チェックをする

Facebook JavaScript SDKを使えばクライアント側でログイン認証の処理が簡潔に実現できますが、自前のWebアプリのサーバー側で提供するAPIを呼びたい時に、API側でも認証のチェックをした方が良いです。 例えば、DBのエントリを削除するよるREST APIを作ったとして、誰もが消せてしまったら困りますよね。エントリを作成した人のみが削除権限を持つような仕組を実装したい場合は、サーバー上のDELETEのAPIで本当にその人であるかの確認を行う必要があります。今回はJavaScript SDKを使ってログインが完了したユーザーのアクセストークン(FB.getLoginStatusを読んだ時に得られるトークン)をNodeJSのexpress環境で作成したREST APIの中でverifyする例を紹介します。 (more…)

JS

Facebook JavaScript SDKをrequireJSでロードする

Facebook Webアプリを作る際に便利なFacebook JavaScript SDKというものはご存知でしょうか。 これを使うと、クライアント側の認証やFBのAPIの呼び出しを簡単にJSで実現できます。 ただしSDKのロードは非同期に行われるため、コールバック等の扱いがやや複雑になります。特にrequireJSと組み合わせると、自作のモジュールの読み込みもasyncになるため、FB SDKのasyncのロードと整合性を合わせる必要があります。 今回はFB SDK+requireJSを使って、主にSDKロードからユーザーのログイン周りの処理の方法を紹介します。 (more…)

JS

AndroidのWebView.loadDataにがっつりはまったのでメモ

ここ2、3日間Androidのwebviewにはまり続けていたので忘れないうちにメモ。 Androidのアプリ内のwebviewのdebugは簡単にできないのでweinre(JSをwebページに仕込んでその結果をサーバーに送りデバッガのようにブラウザで確認できるツール)を使ったり、androidのlogcatを使ったりはするのですが、それでも謎の現象に遭遇しました。 今回はandroidのwebview(デフォルトのブラウザを内部的に使用している)から前回の記事で書いたxhr2を使ったり、webviewがデータとして受け取ったHTMLをloadDataという仕組みでレンダリングしたりしていたので、ちょっと通常とは違う使い方だった訳で、色々つまずきながら解決していきました。 (more…)

JS

クロスドメインajaxのxhr2(CORS)を使ってみた感想

これまでjavascriptのXMLHttpRequest(XHR)による非同期通信のクロスドメインリクエストはブラウザの制約(same domain policy)により遮断されていました。 このsame domain policyについては以下によくまとまっていました。 http://d.hatena.ne.jp/hasegawayosuke/20130330/p1 私は遥か昔JS初心者だった頃ドメインを越えられないと知った時に衝撃を受けました。まぁもしこの制約が無かったら、やりたい放題ですからね。例えば掲示板に悪意のあるscriptを仕込んだり、ユーザーのcookieだとかなんでもサーバーに送れちゃったりしちゃう訳ですから、セキュリティ上しょうがない。 しかし、この制約を越えるために、先人のフロントエンド系の技術者達は当初ブラウザが想定指定なった様々なハックを考えだしたのです。例えば、ざっと思いつく有名なものをあげてみます。 (more…)

JS

Facebookログインボタンを設置する方法

Facebookの認証を使用したアプリケーションを作る際に必要なlogin button設置の方針について今回は記事を書きます。 自作のWebアプリケーションでfacebookのログインを実装する方法は大きく2つあります。一つは、"Facebookが提供しているクライアント側のみで認証処理を行うJavaScript SDKを使う方法"。もう一つは、昔ながらの"サーバー側で認証の処理を行い、クライアント側には単なるボタンのリンクを貼る方法"です。 もちろんアプリケーションが提供する機能や実装の都合など、場合に応じて選択するアプローチは異なってくるでしょう。今回はボタンを設置する場合にデザインのカスタマイズや国際化という観点から両者を比較してみます。 (more…)

雑談

Evernote Platform Awards

最近ふとevernoteがさくさく動くようになったなーと思って、evernote blogをチェックしていたらパフォーマンスのアップデートに関する記事は特になく、アプリコンテストの記事を見つけました。 どうやらEvernoteの公開されているAPIを使用したアプリケーションならなんでも申し込めるっぽいです。 Evernote Platform Awards https://platformawards.evernote.com/intl/jp/ JavaScriptのSDKもあるみたいです。 http://dev.evernote.com/intl/jp/doc/start/javascript.php 締め切りは2014年7月31日。 ネタ&開発者募集中!笑