oauth-signature을 사용하여 woocommerce API 연결에 대한 oauth-signature를 생성합니다.woocommerce api v1과 http 및 javascript (https 아님)
그러나 다음과 같은 요청이 아직 승인되지 않은 반환필요한 매개 변수는 다음과 같습니다 : 나는 woocommerce rest api documentation에 명시된 모든 단계를 따라 oauth_consumer_key, oauth_timestamp, oauth_nonce, oauth_signature를하고을 oauth_signature_method. oauth_version은 필요하지 않으므로 생략해야합니다. OAuth nonce는 임의로 생성 된 소비자 키에 고유 한 32 자 (권장) 문자열 일 수 있습니다. 등 ...
(그나마 걱정은 키가 현지 사용을위한 전용)
응답 :
{"code":"woocommerce_rest_cannot_view","message":"Beklager, du kan ikke liste ressurser.","data":{"status":401}}
임 WP 4.7, WC 2.6.9, A
는 문자열 기반 서명과와 소비자 비밀 키를 사용하여 서명을 생성 : 나는 또한 도서관에서 요구하는이 작업이 완료되었는지 확인
화장실, 화장실 등을 위해 비활성화 된 SSL 활성화 PI .. & 문자가 HMAC-SHA1 해시 알고리즘을 사용합니다.
시간대는 UNIX이며 필요에 따라 nonce를 생성해야합니다. 그래서 당신 중 일부는 문제를 발견합니까? 여기 내 코드는 다음과 같습니다.
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 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for(let i = 0; i < length; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
}
다른 누구나이 행운이 있었나요?
나는 여기에 '작동하지 않는'솔루션을 발견했다. quote => "https://github.com/bettiolo/oauth-signature-js/blob/master/dist/oauth-signature.js#L263 행을 this._key = consumerSecret;으로 대체했습니다." – Steffan
(그가 wc api '레거시 v2'를 사용하고 있고 최근 버전 인 'v1'을 사용하고있는 것처럼 보입니다.)^ – Steffan