JSFiddle - React, Tailwind, and code Playground
by Cybolic
HTML
<script src="http://oauth.googlecode.com/svn/code/javascript/sha1.js"></script>
<script src="http://oauth.googlecode.com/svn/code/javascript/oauth.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/json3/3.3.0/json3.min.js"></script>
<pre id="output"></pre>
JavaScript
var getAuthorizationHeader = function(url, key, secret) {
var message = {
method : 'GET'
,action : url
,parameters : { oauth_nonce: OAuth.nonce(32) }
};
// Fill the message object with the necessary fields (timestamp, signature, etc.)
OAuth.completeRequest(message, {
consumerKey : ''+key
,consumerSecret : ''+secret
});
return OAuth.getAuthorizationHeader('', message.parameters);
};
// Many browsers and users don't have correct time, so get a stable offset to adjust it by
var correctTime = function(callback) {
var request = newXMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState == 4) {
if (request.status == 200) {
var time = JSON.parse(request.responseText);
OAuth.correctTimestamp(parseInt(time.unix));
callback(null);
} else {
callback(request.status);
}
}
};
request.open('GET', 'http://192.237.222.223:1999/time.json?key='+encodeURIComponent('6oWsI1rwqw5ccvlcbrxgkLAqOts='), true);
request.send();
};
var getNARCData = function(key, secret, callback) {
var request = newXMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState == 4) {
if (request.status == 200) {
window._req = request;
var data = JSON.parse(request.responseText);
callback(null, data);
} else {
callback(request.status);
}
}
}
request.open('GET', 'http://192.237.222.223:1999/get_data', true);
request.setRequestHeader('Authorization',
getAuthorizationHeader('http://192.237.222.223:1999/get_data', key, secret)
);
request.send();
};
function newXMLHttpRequest() {
try{
return new XMLHttpRequest();
} catch(e) {
try{
return new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try{
return new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
alert("Sorry, your browser doesn't support...