带有scribes java库的Woocommerce REST API返回消费者密钥参数丢失错误消息
大家好,我正在尝试使用库通过http.code访问RESTAPI带有scribes java库的Woocommerce REST API返回消费者密钥参数丢失错误消息,java,wordpress,woocommerce,oauth-1.0a,Java,Wordpress,Woocommerce,Oauth 1.0a,大家好,我正在尝试使用库通过http.code访问RESTAPI package org.scribe.examples; import java.util.*; import org.scribe.builder.*; import org.scribe.builder.api.*; import org.scribe.model.*; import org.scribe.oauth.*; public class WooCommerceOauth1Example { private sta
package org.scribe.examples;
import java.util.*;
import org.scribe.builder.*;
import org.scribe.builder.api.*;
import org.scribe.model.*;
import org.scribe.oauth.*;
public class WooCommerceOauth1Example {
private static final String RESOURCE_URL = "http://WEBSITE.COM/wc-api/v1/orders";
public static void main(String[] args) {
OAuthService service = new ServiceBuilder().provider(OneLeggedApi10.class)
.apiKey("ck_SOME_NUMBER")
.apiSecret("cs_SOME_NUMBER")
.build();
// Now let's go and ask for a protected resource!
System.out.println("Now we're going to access a protected resource...");
OAuthRequest request = new OAuthRequest(Verb.GET, RESOURCE_URL);
//Since it is a one legged protocol, access token is empty.Right?
service.signRequest(new Token("", ""), request);
Response response = request.send();
System.out.println("Got it! Lets see what we found...");
System.out.println();
System.out.println(response.getCode());
System.out.println(response.getBody());
System.out.println();
System.out.println("Thats it man! Go and build something awesome with Scribe! :)");
}
}
抛出以下错误
{“errors”:[{“code”:“woocommerce\u api\u authentication\u error”,“message”:“oauth\u consumer\u key参数丢失”}]}
. 你知道为什么我的代码会抛出上述错误吗?请注意,我已经用http检查了v1端点,它返回了合理的消息。因此基本上它可以工作。从中删除“&”+OAuthEncoder.encode(tokenSecret),并将签名类型添加到QueryString,现在可以工作了 清洁后我会提出一个公关建议。谢谢巴勃罗。下面是完整的代码
package org.scribe.builder.api;
import org.scribe.model.Token;
import org.scribe.model.Verb;
public class OneLeggedApi10 extends DefaultApi10a {
@Override
public String getAccessTokenEndpoint() {
return null;
}
@Override
public String getRequestTokenEndpoint() {
return null;
}
@Override
public String getAuthorizationUrl(Token requestToken) {
return null;
}
@Override
public Verb getAccessTokenVerb() {
return Verb.GET;
}
@Override
public Verb getRequestTokenVerb() {
return Verb.GET;
}
}
还有示例类
package org.scribe.examples;
import org.scribe.builder.*;
import org.scribe.builder.api.*;
import org.scribe.model.*;
import org.scribe.oauth.*;
public class WooCommerceOauth1Example {
private static final String NETWORK_NAME = "Woocommerce";
private static final String RESOURCE_URL = "http://YOUR_DOMAIN/wc-api/v1/orders/count";
private static final String SCOPE = "*"; //all permissions
public static void main(String[] args) {
OAuthService service = new ServiceBuilder().provider(OneLeggedApi10.class)
.apiKey("API_KEY")
.apiSecret("SECRET_KEY")
.debugStream(System.out)
.signatureType(SignatureType.QueryString)
/*.scope(SCOPE).*/
.build();
System.out.println("=== " + NETWORK_NAME + "'s OAuth Workflow ===");
System.out.println();
// Now let's go and ask for a protected resource!
System.out.println("Now we're going to access a protected resource...");
OAuthRequest request = new OAuthRequest(Verb.GET, RESOURCE_URL);
service.signRequest(new Token("", ""), request);
Response response = request.send();
System.out.println("Got it! Lets see what we found...");
System.out.println();
System.out.println(response.getCode());
System.out.println(response.getBody());
System.out.println();
System.out.println("Thats it man! Go and build something awesome with Scribe! :)");
}
}您是否介意将
.debug()
添加到ServiceBuilder
以查看生成的Auth头是什么?