こんにちは!!
11年度新卒のシモダです

みなさん大好きなtwitterですが、flashでAPIをあれこれするとき一番厄介なのがOAuth認証
サーバーサイドの処理がどうとか、PHPとかなんかよくわかりません!!
今回はそんなOAuth認証をなるだけフロントサイドだけでやってみようと思います

【必要なもの】

oauth-as3(ライブラリ)
サーバー
コールバック用のhtml
crosdomain対策のPHP

【必要なもの終わり】

まずoauth-as3で認証画面までいきましょう

private function twitterOauth():void{   
var twitterOauthComsumer:OAuthConsumer = new OAuthConsumer(CONSUMER_KEY,CONSUMER_SECRET);
var oauthRequest:OAuthRequest = new OAuthRequest("GET","http://twitter.com/oauth/request_token",null,twitterOauthComsumer);
oauthRequest.buildRequest(new OAuthSignatureMethod_HMAC_SHA1);
var url:String = oauthRequest.buildRequest(new OAuthSignatureMethod_HMAC_SHA1);
var urlvariable:URLVariables = new URLVariables();
urlvariable.url = url;
var urlrequest:URLRequest = new URLRequest("proxy.php");
urlrequest.method = URLRequestMethod.POST;
urlrequest.data = urlvariable;
var urlloader:URLLoader = new URLLoader();
urlloader.addEventListener(Event.COMPLETE,urlloaderCompleteHandler);
urlloader.load(urlrequest);
}

そして同階層に"proxy.php"を作っておきます
PHPだからといってざわざわしなくても大丈夫!!
    if(isset($_POST["url"])) readfile($_POST["url"]);

この一行だけです
POSTでurlを渡してPHPに通信させることでサンドボックス障害を乗り越えています

private function urlloaderCompleteHandler(event:Event):void{
var twitterOauthComsumer:OAuthConsumer = new OAuthConsumer(CONSUMERKEY,CONSUMERSECRET);
var twitterRequestToken:OAuthToken = OAuthUtil.getTokenFromResponse(event.currentTarget.data);
var url:String = "https://twitter.com/oauth/authorize?oauth_token=" + twitterRequestToken.key;
navigateToURL(new URLRequest(url));
}


これで認証画面まで飛ぶことができます
今回はここまで!!
次回はjsを使ったコールバックを説明します!!!


oauth-as3
http://code.google.com/p/oauth-as3/

参考にしたページ
http://d.hatena.ne.jp/kinokorori/20100609/1276093689

HTML5飯