2015-11-12 5 views
0

Я делаю запрос, но он не работает. Если скопировать код в браузере он работает хорошо, но в моей консоли он показывает это:Запрос api не работает должным образом

{ 
    "status" : "success", 
    "data" : { 
    "error_message" : "API access enabled, but unable to verify two-factor authentication code. If you need help with this, please contact [email protected]" 
    } 
} 

Что я делаю неправильно? Это основано на двухфакторной аутентификации, которая, как я уже говорил, хорошо работает при печати самого URL-адреса и при копировании его в мой браузер.

var url = 'https://bitskins.com/api/v1/get_item_price/?api_key='+bitskins.apikey+'&code='+bitskins.code+'&names='+encodeURIComponent(items[i].market_hash_name)+'&delimiter=!END!'; 
       console.log(url); 
       request(url, function (error, response, body) { 
        if (!error) { 
         console.log(body) 
        } 
       }); 

В случае, если вы хотите, вот мой ключ API модуль для создания его (апи ключ удален для обеспечения безопасности)

var TOTP = require('onceler').TOTP; 

//Create a TOTP object with your secret 
var totp = new TOTP('deleted'); 

// print out a code that's valid right now 
// console.log(totp.now()); 

var code = totp.now(); 

module.exports = { 
    code: code, 
    apikey: 'deleted' 
} 
+0

Дайте нам ссылку на документацию API –

+0

@aryehArmon [ссылка на документацию api] (https://bitskins.com/api) – NotAJohnDoe

+0

где вы объявляете bitkins.apikey var? –

ответ

0

основатель BitSkins, Inc. здесь. Вы должны иметь следующее:

1) Ваш ключ API 2) защищенного доступа Секретный

Вы видите секрет при включении защищенного доступа. Если этого не произошло, просто отключите/снова включите безопасный доступ и обратите внимание на секретный доступ. Код TOTP, который вы создаете, - это секрет. Создайте код TOTP прямо перед каждым вызовом API, и все будет в порядке.

+0

Большое спасибо. . Мой ключ api и код TOTP кажутся прекрасными, в то время как im печатает его внутри цикла и копирует вставку в мой браузер, все выглядит нормально (если я делаю это достаточно быстро, пока код по-прежнему жизнеспособен). Единственная проблема, с которой я сталкиваюсь, заключается в том, что функция запроса не работает с ней. – NotAJohnDoe

0

Я думаю, что он должен работать. Для меня это прекрасно работает.

var API_KEY = ''; //It is very important 
var SECRET_KEY = ''; //It is very important 

var totp = new TOTP(SECRET_KEY); 
var code = totp.now(); 

var options = { 
    url: 'https://bitskins.com/api/v1/get_item_price', 
    form: { 
    'api_key': API_KEY, 
    'names': 'Tec-9%20%7C%20Sandstorm%20(Minimal%20Wear)', 
    'delimiter': '!END!', 
    'code': code 
    } 
}; 

function callback(error, response, body) { 
    if (!error) { 
    var info = JSON.parse(body); 
    console.log(info); 
    } 
} 

request.post(options, callback); 
+0

У меня это работает, на самом деле я использовал ключ api вместо секретного ... Ошибки новичка. Спасибо за вашу помощь. – NotAJohnDoe

0

Какой пакет npm вы используете для создания кода 2FA? Я использую «onceler» из примера, но я думаю, что он создает дурные коды. Вот мой код:

var API_KEY = ''; //correct key from settings page 
var SECRET_KEY = ''; // correct key which I copied from form with QR code. 
var totp = new TOTP("SECRET_KEY"); 
var code = totp.now(); 

Этот код не равен код, который я могу видеть в своем мобильном устройстве и с помощью этого кода я получаю сообщение об ошибке, как в вопросе автора. Но если я поместил код из своего мобильного в программный код - он отлично работает. Итак, какой пакет я должен использовать для получения правильных кодов?

+0

И obviosly я использую SECRET_KEY без "" –

+0

Это дает мне правильные коды, хотя я должен использовать его прямо перед тем, как использовать его. Убедитесь, что вы используете правильные секретные ключи, это работает точно. – NotAJohnDoe

Смежные вопросы