Используйте woocommerce rest api v1 с http и javascript (не https)

Я используюOAuth-подпись сгенерировать мою oauth-подпись для связи с API woocommerce. Я выполнил все шаги, указанные вwoocommerce rest api документация:

Обязательные параметры:oauth_consumer_key, oauth_timestamp, oauth_nonce, oauth_signature и oauth_signature_method, oauth_version не требуется и должен быть опущен. Одноразовый номер OAuth может быть любой случайно сгенерированной 32-символьной (рекомендуемой) строкой, уникальной для ключа потребителя. так далее...

Но следующий запрос по-прежнему возвращает неавторизованный:

http://siglar.no/wp-json/wc/v1/orders?oauth_consumer_key=ck_1ca1c6ff1a93de4836ee52c766538043d7f15d07&oauth_timestamp=1482431903&oauth_nonce=P5SM1FGeFVpdRyHWp4HHYOMlYAhxE6Gl&oauth_signature=cEETZUnSNQD6uorII9c%2B5SXf0M8%3D&oauth_signature_method=HMAC-SHA1

(Не волнуйтесь, ключи только для локального использования)

Отклик:

{"code":"woocommerce_rest_cannot_view","message":"Beklager, du kan ikke liste ressurser.","data":{"status":401}}

Я использую WP 4.7, WC 2.6.9, API активирован для WC, SSL деактивирован для WC и т.д ..

Я также проверил, что это делается в соответствии с требованиями библиотеки:

Сгенерируйте подпись, используя базовую строку подписи и ваш секретный ключ потребителя с символом & с помощью алгоритма хеширования HMAC-SHA1.

Часовой пояс UNIX, и одноразовый номер должен генерироваться по мере необходимости. Так некоторые из вас замечают проблему? Вот мой код:

constructor(private http: Http) {

    var d = new Date();
    var httpMethod = 'GET',
        url = 'http://siglar.no/wp-json/wc/v1/orders',
        ck = 'ck_1ca1c6ff1a93de4836ee52c766538043d7f15d07',
        cs = 'cs_ce323425064c37688d614e4ff43a5489c6f78017',
        sm = 'HMAC-SHA1',
        nc = this.nonceGen(),
        timestamp = Math.floor(d.getTime()/ 1000),
        parameters = {
            oauth_consumer_key : ck,
            oauth_timestamp : timestamp,
            oauth_nonce : nc,
            oauth_signature_method : sm
        },
        // generates a RFC 3986 encoded, BASE64 encoded HMAC-SHA1 hash
        encodedSignature = oauthSignature.generate(httpMethod, url, parameters, cs);

    this.http.get(
        url + '?oauth_consumer_key='+ck+'&oauth_timestamp='+timestamp+'&oauth_nonce='+nc+'&oauth_signature='+encodedSignature+'&oauth_signature_method='+sm
    ).subscribe(data => {
        console.log('fetched');
        console.log(data);
    });

}

public nonceGen() {
    let length = 32;
    let text = "";
    let possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    for(let i = 0; i < length; i++) {
        text += possible.charAt(Math.floor(Math.random() * possible.length));
    }
    return text;
}

Кому-нибудь еще повезло с этим?

Ответы на вопрос(1)

Ваш ответ на вопрос