Hello,
I have read several questions in the forums with similar issues I'm
having - getting correct 'oauth_signature'...
"Missing required oauth parameter: oauth_signature_method"
I can't seem to find answers to these questions on the forum pages
Can someone technical please contact me?
Thank you
// =========CODE START
import com.adobe.crypto.HMAC;
import com.adobe.crypto.MD5;
import com.adobe.crypto.SHA1;
import com.adobe.crypto.SHA224;
import com.adobe.crypto.SHA256;
import flash.utils.getTimer;
import mx.collections.XMLListCollection;
import mx.controls.Alert;
import mx.controls.DataGrid;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
import mx.utils.UIDUtil;
private var myHTTPService:HTTPService;
private var myDataGrid:DataGrid = new DataGrid();
private var params:Object = new Object();
private var signatureBase:String = '';
private var encryptedString:String = "";
private var algorithm:Object;
// ----------------------------------------
// PRIVATE KEY
// ----------------------------------------
private var consKey:String = '*my consumer_key hidden for forum
posting*';
public function useHttpService():void {
trace("useHttpService invoked");
// ----------------------------------------
var dateTemp:Date = new Date();
var d2toint:Number = dateTemp.time*1000; //1308874009290000
var nonce:Number = d2toint;
// ----------------------------------------
// 1. Signature base string
// - http method
// - request url
// - normalize parms (sort, concatenate, encode)
// ----------------------------------------
// SORT
// ----------------------------------------
// REQUIRED PARTS
// oauth_consumer_key=demo
// oauth_nonce=abc
// oauth_signature_method=HMAC-SHA1
// oauth_timestamp=12345678
// oauth_version=1.0
// ----------------------------------------
myHTTPService = new HTTPService();
myHTTPService.url = "
http://platform.fatsecret.com/rest/
server.api";
myHTTPService.method = "POST";
myHTTPService.addEventListener("result", resultHandler);
myHTTPService.addEventListener("fault", faultHandler) ;
// CONCATENATE & ENCODE
var sendS1:String = ('POST & ');
var sendS1b:String= encodeURIComponent('http://
platform.fatsecret.com/rest/server.api');
var sendS1c:String= (' & ');
var sendS2:String = escape('oauth_consumer_key=' + consKey + '&'+
'oauth_nonce=' + nonce +
'oauth_signature_method=HMAC-SHA1&'+
'oauth_timestamp='+ d2toint + '&' +
'oauth_version=1.0'
);
// ----------------------------------------
// SIGNATURE BASE STRING
// ----------------------------------------
signatureBase = (sendS1 + sendS1b + sendS1c + sendS2);
trace(signatureBase);
/*
EXAMPLE:
POST & http%3A%2F%
2Fplatform.fatsecret.com%2Frest%2Fserver.api & a
%3Dbar%26%26oauth_consumer_key%3Ddemo%26oauth_nonce%3Dabc
%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp
%3D12345678%26oauth_version%3D1.0%26z%3Dbar
MINE:
POST & http%3A%2F%
2Fplatform.fatsecret.com%2Frest%2Fserver.api &
oauth_consumer_key%3D**my consumer_key hidden for forum posting*
%26oauth_nonce%3Dabc%26oauth_signature_method%3DHMAC-
SHA1%26oauth_timestamp%3D1308877181282000%26oauth_version%3D1.0
*/
// ----------------------------------------
// ----------------------------------------
// 2. CALCULATE SIGNATURE VALUE
// - key ('KEY') = the concatenated values of the Consumer Secret
and Access Secret separated by an '&'
// - data ('TEXT') = SIG BASE STRING
// - encryption
// com.adobe.crypto.HMAC
// + hash(string, string, obj)
// + hashBytes(byteArray, byteArray, obj)
// ----------------------------------------
algorithm = SHA1;
encryptedString = HMAC.hash(consKey,signatureBase,algorithm);
// ----------------------------------------
// ----------------------------------------
// 3. SEND REQUEST
// ----------------------------------------
myHTTPService.send(encryptedString);
// ----------------------------------------
// ----------------------------------------
// 4. SEE Next function below - resultHandler
// ----------------------------------------
// HELP ASDOCS
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/mxml/HTTPService.html
}
public function resultHandler(event:ResultEvent): void {
trace("resultHandler invoked");
var result:Object = event.result;
var j:String =result.uid as String;
trace(result.uid as String);
trace(j);
Alert.show('200! \nHTTP Service GUID:\n ' + j);
}