Я работаю с FatSecret REST API
Я использую OAuthSimplejavascript-библиотека для создания подписанного URL-адреса. Вот код, который у меня есть:
params['oauth_timestamp'] = Math.floor(new Date().getTime()/1000);
params['oauth_nonce'] = '1234';
params['oauth_version'] = '1.0';
var paramStr = '';
for(var key in params){
paramStr += key+"="+params[key]+"&";
}
paramStr = paramStr.substring(0,paramStr.length-1);
var oauth = OAuthSimple();
oauth.setAction('GET');
var o = oauth.sign(
{
path:this.requestURL,
parameters: paramStr,
signatures:{
api_key:this.apiKey,
shared_secret:this.sharedSecret,
access_token: this.accessToken,
access_secret: this.accessSecret
}
});
console.log(o.signed_url);
return o.signed_url;
params — это ассоциативный массив, содержащий все параметры, не связанные с oauth, для этого вызова. Когда я использую этот подписанный URL-адрес, я получаю «недопустимый/использованный одноразовый номер»
Инструмент тестирования OAuthиспользует ту же библиотеку OAuthSimple, и если я ввожу все те же параметры (включая метку времени), он генерирует точно тот же URL.
Единственное отличие состоит в том, что URL-адрес, сгенерированный инструментом тестирования, работает и дает мне полный ответ от сервера. URL-адрес, сгенерированный моим кодом, не работает.
Я пробовал различные значения одноразового номера, включая отправку метки времени MD5, но получаю ту же ошибку. Причина, по которой я сейчас использую 1234, заключается в том, что инструмент тестирования использует 1234 по умолчанию, и это, кажется, работает.
Любая помощь приветствуется. Заранее спасибо.