Flash

こんにちは、2時間かけて会社に通っているシモダです

前回コールバック用のhtmlを作りましたが、今回はそのhtmlからflashへデータを通信する方法を書きます
まず各ファイルの関係から

twitter_oauth.png

swfを乗せる表示用のhtmlは下記です

<html>
<head>
<script type="text/javascript">
<!--<br /> window.name = "index";
// -->
</script>
</head>
<body>
<div id="box"></div>
<script src="swfobject.js"></script>
<embed src="instagramTest.swf" id="externalasExtTest" name="externalasExtTest" width=100% height=100%>
</body>

重要なのはwindow名を指定しておくことです
window.name = "index";
こうすることによって別のhtmlからアクセスすることができます

//コールバック用html、indexを指定
var W = open("","index");
W.document["externalasExtTest"].callBackTwitter(document.URL);
window.close();

もう一つ大事なのがflash側にjs関数を登録しておくことです

ExternalInterface.addCallback("callBackTwitter", twitterOauthCallback);

jsでcallBackTwitterを実行することでflash側のtwitterOauthCallbackが実行されます flashに引数でURLを渡したら、さらにもう一度APIをたたきます

var cutend:int=str.indexOf("&oauthverifier=");
var requestVerifier:String=str.substring(cutend + 16);
var params:Object=new Object();
params.oauth
verifier=requestVerifier;
var oauthRequest:OAuthRequest=new OAuthRequest("GET", "https://api.twitter.com/oauth/accesstoken", params, twitterOauthComsumer, twitterRequestToken);
oauthRequest.buildRequest(new OAuthSignatureMethod
HMACSHA1);
var url:String=oauthRequest.buildRequest(new OAuthSignatureMethod
HMACSHA1);
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);

これでやっとaccess
tokenが返ってきます
お疲れ様でした!!

twitterのコールバック処理をjsでやってみよう!!その3

Flash

こんにちは、11年度新卒のシモダです!!
前回に引き続きtwitterのOAuth認証をやっていきます

認証画面にまで飛べたのでここからコールバックの処理が始まります
まずtwitterのアプリケーション登録でcallbackURLを指定します

0d124a87fee397faeedce466c9f74ec8.png

指定先はコールバック用のhtmlです

次にコールバック用のhtmlの説明をします

<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
<div class="demo" id="sample"></div>
<script type="text/javascript">
$(document).ready(function(){
var W = open("","index");
W.document["externalasExtTest"].callBackTwitter(document.URL);
window.close();
})
</script>
</body>
</html>

document.URLでGET型で渡されたパロメーターを取得する、ということです
ExternalInterfaceを使いflashにURLを投げるのですが、肝心のswfがこのhtmlにはありません
どこにあるかというと、このhtmlとは別にflashを設置してあるhtmlがあります
このhtmlの役割はコールバックのプロパティを受け取るためのものなので、そういう構造になっています
次回、jsとの通信やファイルの置き場所など、説明したいと思います!!

twitterのコールバック処理をjsでやってみよう!!その2