Note that there are some explanatory texts on larger screens.

plurals
  1. POjavascript / php - porting amazon awis example from php to javascript
    primarykey
    data
    text
    <p>Hi I'm trying to convert the PHP Code example for an AWIS request found here:</p> <p><a href="http://aws.amazon.com/code/AWIS/402" rel="nofollow">http://aws.amazon.com/code/AWIS/402</a></p> <p>to javascript / jquery. I feel like I'm very close, but I'm getting an "unauthorized" 401 response. I would love to get this up and running, and I was wondering if anyone could tell me what I'm doing wrong, or point me in the direction of an example using javascript. </p> <pre><code>&lt;html&gt; &lt;head&gt; &lt;title&gt;AWIS&lt;/title&gt; &lt;script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="http://crypto-js.googlecode.com/files/2.3.0-crypto-sha256-hmac.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="http://crypto-js.googlecode.com/files/2.3.0-crypto-min.js"&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div id="output"&gt;&lt;/div&gt; &lt;script&gt; var actionName = 'UrlInfo'; var responseGroupName = 'Rank,LinksInCount'; var serviceHost = 'awis.amazonaws.com'; var count = 10; var startNum = 1; var sigVersion = '2'; var hashVersion = 'HmacSHA256'; var accessKeyID = 'XXXAJA664T37BDNPSXXX'; var accessKey = 'XXXoImq0sZ4J/vYRewLuNjPFXYQ809DfLmzcpXXX'; var site = 'http://site.com'; function getURLInfo(){ var queryParams = buildQueryParams(); var sig = generateSignature(queryParams); var requestURL = 'http://' + serviceHost + '/?' + queryParams + '&amp;Signature=' + sig; console.log('requestURL:' + requestURL); $.ajax({ type: 'GET', url: requestURL, dataType: 'xml', crossDomain: true, error: function(jqXHR,textStatus, errorThrown){ console.log(textStatus + "|" + errorThrown) }, success: function(data, textStatus, jqXHR){ console.log(data); } }); } function ISODateString(d){ function pad(n){return n&lt;10 ? '0'+n : n} return d.getUTCFullYear()+'-' + pad(d.getUTCMonth()+1)+'-' + pad(d.getUTCDate())+'T' + pad(d.getUTCHours())+':' + pad(d.getUTCMinutes())+':' + pad(d.getUTCSeconds())+'.000Z' } function getTimeStamp(){ var d = new Date(); var now = ISODateString(d); //var hardcoded_time = "2011-10-28T16:33:03.000Z"; //USE THIS TO TEST BETWEEN SAMPLE PHP AND JS return now; } function buildQueryParams(){ var params = {}; params.AWSAccessKeyId = accessKeyID; params.Action = actionName; params.Count = count; params.ResponseGroup = responseGroupName; params.SignatureMethod = hashVersion; params.SignatureVersion = sigVersion; params.Start = startNum; params.Timestamp = getTimeStamp(); params.Url = site; paramString = $.param(params); return paramString; } function generateSignature(sigParams){ var sign = "GET\n" + serviceHost + "\n/\n" + sigParams; console.log("SIGN: \n" + sign); var sigHash = Crypto.HMAC(Crypto.SHA256, sign, accessKey, { asString: true }); console.log("HMAC:" + sigHash); var sigBytes = Crypto.charenc.Binary.stringToBytes(sigHash); var sig64 = Crypto.util.bytesToBase64(sigBytes); console.log("BASE 64: " + sig64); var sigEnc = encodeURIComponent(sig64); console.log("ENCODED URL: " + sigEnc) return sigEnc; } function awisResponse(response){ console.log(response); } getURLInfo(); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload