Ejemplo n.º 1
0
OAuthAdapter.prototype.getRequestToken = function(pUrl, callback, responseHandler){
	this.accessor.tokenSecret = '';
	
	var message = createMessage(pUrl, this.consumerKey, this.signatureMethod);
	OAuth.setTimestampAndNonce(message);
	OAuth.completeRequest(message, this.accessor, callback);
	
	var parameterMap = OAuth.getParameterMap(message.parameters);
	for (var p in parameterMap) Ti.API.debug('param : ' + p + ': ' + parameterMap[p]);
	
	var oauthCallbackHandler = this.oauthCallbackHandler;
	var client = Ti.Network.createHTTPClient();
	client.open('POST', pUrl);
	client.onload = function() {
		var responseParams = OAuth.getParameterMap(client.responseText);
		oauthCallbackHandler.setRequestToken(responseParams.oauth_token);
		oauthCallbackHandler.setRequestTokenSecret(responseParams.oauth_token_secret);
		Ti.API.debug('request token got the following response: ' + client.responseText);
		responseHandler.call(this, client.responseText);
	};
	client.onerror = function(e) {
		for( var i in e )
		Ti.API.error("getRequestToken failed: " + i + ' : ' + e[i]);
	}
	client.send(parameterMap);
}
Ejemplo n.º 2
0
OAuthAdapter.prototype.getAccessToken = function(pUrl, callback){
	this.accessor.tokenSecret = this.oauthCallbackHandler.getRequestTokenSecret();
	var message = createMessage(pUrl, this.consumerKey, this.signatureMethod);
	message.parameters.push(['oauth_token', this.oauthCallbackHandler.getRequestToken()]);
	message.parameters.push(['oauth_verifier', this.oauthCallbackHandler.getPin()]);
	
	OAuth.setTimestampAndNonce(message);
	OAuth.completeRequest(message, this.accessor);
	
	var parameterMap = OAuth.getParameterMap(message.parameters);
	for (var p in parameterMap) Ti.API.debug('Param : ' + p + ': ' + parameterMap[p]);
	
	var oauthCallbackHandler = this.oauthCallbackHandler;
	var client = Ti.Network.createHTTPClient();
	client.open('POST', pUrl, true);
	client.onload = function() {
		var responseParams = OAuth.getParameterMap(client.responseText);
		oauthCallbackHandler.setAccessToken(responseParams.oauth_token);
		oauthCallbackHandler.setAccessTokenSecret(responseParams.oauth_token_secret);
		Ti.API.debug('*** get access token, Response: ' + client.responseText);
		callback.call(this, client.responseText);
	}
	client.onerror = function(e) {
		Ti.API.error("getAccessToken failed: " + e);
		for (var p in e) Ti.API.error(p + ': ' + e[p]);
	}
	client.send(parameterMap);
};
Ejemplo n.º 3
0
OAuthAdapter.prototype.createOAuthHeader = function (params) {
	var pUrl            = params.url;
	var pMethod         = params.method || "POST";
	var message = createMessage(pUrl, this.consumerKey, this.signatureMethod, pMethod);
	
	this.accessor.tokenSecret = this.oauthCallbackHandler.getAccessTokenSecret();
	message.parameters.push(['oauth_token', this.oauthCallbackHandler.getAccessToken()]);
	
	OAuth.setTimestampAndNonce(message);
	OAuth.SignatureMethod.sign(message, this.accessor);
	
	var parameterMap = OAuth.getParameterMap(message.parameters);
	var oAuthHeaderElms = [];
	for (var p in parameterMap) {
		oAuthHeaderElms.push( encodeURIComponent(p) + "=" + encodeURIComponent(parameterMap[p]) );
	}
	return 'OAuth ' + oAuthHeaderElms.sort().join(', ');
};
Ejemplo n.º 4
0
OAuthAdapter.prototype.generateParams = function(pUrl, pParameters){
	Ti.API.debug('Sending a message to the service at [' + pUrl + '] with the following params: ' + JSON.stringify(pParameters));
	if(
		this.oauthCallbackHandler.getAccessToken() == null ||
		this.oauthCallbackHandler.getAccessTokenSecret() == null
	){
		this.actionsQueue.push({
			url: pUrl,
			parameters: pParameters
		});
		return;
	}
	this.accessor.tokenSecret = this.oauthCallbackHandler.getAccessTokenSecret();
	var message = createMessage(pUrl, this.consumerKey, this.signatureMethod);
	message.parameters.push(['oauth_token', this.accessToken]);
	
	for (p in pParameters) message.parameters.push(pParameters[p]);
	OAuth.setTimestampAndNonce(message);
	OAuth.completeRequest(message, this.accessor);
	
	return OAuth.getParameterMap(message.parameters);
};
Ejemplo n.º 5
0
OAuthAdapter.prototype.execute = function( url, params, callback, method ){
	var method = method ? method : 'POST';
	if (method == 'GET') url = makeGetURL(url, parameterMap);
	
	if(
		this.oauthCallbackHandler.getAccessToken() == null ||
		this.oauthCallbackHandler.getAccessTokenSecret() == null
	){
		this.actionsQueue.push({
			url: url,
			parameters: params
		});
		Ti.API.debug("invalid param");
		callback(null, { status: 401 });
		
	} else {
		this.accessor.tokenSecret = this.oauthCallbackHandler.getAccessTokenSecret();
		var message = createMessage(url, this.consumerKey, this.signatureMethod, method);
		message.parameters.push(['oauth_token', this.oauthCallbackHandler.getAccessToken()]);
		for (p in params){ message.parameters.push(params[p]); }
		
		OAuth.setTimestampAndNonce(message);
		OAuth.completeRequest(message, this.accessor);
		var parameterMap = OAuth.getParameterMap(message.parameters);
		for (var p in parameterMap) Ti.API.debug(p + ': ' + parameterMap[p]);
		
		var client = Ti.Network.createHTTPClient();
		client.onload = function(){
			client.onload = null;
			client.onreadystatechange = null;
			client.ondatastream = null;
			client.onerror = null;
			client = null;
			
			if( this.status == 200 ) {
				Ti.API.debug('data from http...' + this.responseText);
				
				try{ var request = JSON.parse(this.responseText); }
				catch( e ){ callback(null, {status:401}); }
				
				if ( request ) { callback(request, {status: 200}); }
				else { callback(null, {status: 400}); }
				
			} else {
				callback(null, {status: this.status });
			}
		};
		
		client.onerror = function(){
			client.onload = null;
			client.onreadystatechange = null;
			client.ondatastream = null;
			client.onerror = null;
			client = null;
			
			Ti.API.debug("onload error " + url + ' : ' + this.responseText);
			if( this.status ) { callback(null, {status: this.status} ) }
			else { callback(null, {status: this.status}); }
		};
		client.setTimeout(10000);
		
		if( method == 'GET' ){
			var finalUrl = OAuth.addToURL(url, parameterMap);
			client.open(method, finalUrl, false);
			client.send();
		} else {
			client.open(method, url, false);
			client.send(parameterMap);
		}
		Ti.API.debug("onload now " + url);
	}
};