private var _accessToken:OAuthToken;
private var authoriseURL:String;
private var lastHTTPStatus:int = 0;
+ private var waiting:Boolean = false;
public static var ACCESS_TOKEN_EVENT:String = "gotAccessToken";
private function getAuthText():String {
return "To save data you must authorise this application to edit "+
- Connection.serverName + " on your behalf.";
+ connection.serverName + " on your behalf.";
}
+ public function setConnection(connection:Connection):void {
+ this.connection=connection;
+ if (waiting) { waiting=false; getRequestToken(); }
+ }
+
private function openURL(url:String):void {
if (ExternalInterface.available) {
var winH:int = 560;
}
private function getRequestToken():void {
- connection = Connection.getConnection();
-
+ if (!connection) { waiting=true; return; } // in case the connection hasn't been set yet
+
var sig:IOAuthSignatureMethod = new OAuthSignatureMethod_HMAC_SHA1();
var consumer:OAuthConsumer = getConsumer();
- var url:String = Connection.getParam("oauth_request_url", "http://127.0.0.1:3000/oauth/request_token");
+ var url:String = connection.getParam("oauth_request_url", "http://127.0.0.1:3000/oauth/request_token");
var params:Object = new Object();
var oauthRequest:OAuthRequest = new OAuthRequest("GET", url, params, consumer, null);
trace("Yay! response: "+URLLoader(event.target).data);
requestToken = getResponseToken(URLLoader(event.target));
- var url:String = Connection.getParam("oauth_auth_url", "http://127.0.0.1:3000/oauth/authorize");
+ var url:String = connection.getParam("oauth_auth_url", "http://127.0.0.1:3000/oauth/authorize");
link.label = url;
authoriseURL = url + "?oauth_token="+requestToken.key;
progress.visible = false;
private function getAccessToken():void {
var sig:IOAuthSignatureMethod = new OAuthSignatureMethod_HMAC_SHA1();
var consumer:OAuthConsumer = getConsumer();
- var url:String = Connection.getParam("oauth_access_url", "http://127.0.0.1:3000/oauth/access_token");
+ var url:String = connection.getParam("oauth_access_url", "http://127.0.0.1:3000/oauth/access_token");
var oauthRequest:OAuthRequest = new OAuthRequest("GET", url, null, consumer, requestToken);
var urlStr:Object = oauthRequest.buildRequest(sig, OAuthRequest.RESULT_TYPE_URL_STRING)
PopUpManager.removePopUp(this);
_accessToken = getResponseToken(URLLoader(event.target));
- Connection.getConnection().setAuthToken(_accessToken);
+ connection.setAuthToken(_accessToken);
dispatchEvent(new Event(ACCESS_TOKEN_EVENT));
}
}
private function getConsumer():OAuthConsumer {
- var key:String = Connection.getParam("oauth_consumer_key", "");
- var secret:String = Connection.getParam("oauth_consumer_secret", "");
+ var key:String = connection.getParam("oauth_consumer_key", "");
+ var secret:String = connection.getParam("oauth_consumer_secret", "");
return new OAuthConsumer(key, secret);
}