【发布时间】:2012-01-19 13:58:18
【问题描述】:
我们正在尝试连接另一家公司的自定义 API,该 API 使用两条腿 OAuth 来验证请求并向我们发送响应。
目前,我们拥有的代码正在发送请求,但在另一端未经过身份验证,因此发送了 UNAUTHORIZED 响应。
到目前为止我们调查的步骤:
- 使用 Python 中的 OAuth 实现并使用 相同的凭据连接到远程站点。
- 要求另一家公司将我们的 OAuth 请求与另一家成功的 OAuth 请求进行比较,看看我们的 OAuth 请求中是否缺少任何内容。
在上面的第二点之后,我们的请求和另一个工作请求之间的唯一区别是oauth_token 参数存在于我们的请求中而不是其他请求中。此外,他说他们在大多数的请求中都有oauth_body_hash_value,但我们的请求中没有 - 尽管没有它他们确实会收到有效的请求。
有没有办法删除 Scribe 中的 oauth_token 参数?或者,是否总是需要oauth_body_hash_value?没有请求可以工作吗?
我已经包含了下面的代码,我对 OAuth 完全陌生,所以请随时告诉我是否还有其他问题。
请注意,TestAPI.class 扩展了 DefaultAPI10a,并且只为所有三个必需的方法返回 ""。
public class TestImporter {
private static final String REQ_URL = "http://test.com/";
private static final String KEY = "KEY";
private static final String SECRET = "SECRET";
// test variables
private static final String VAR1 = "Test123";
public static void main(String[] args) {
OAuthService service = new ServiceBuilder()
.provider(TestAPI.class)
.apiKey(KEY)
.apiSecret(SECRET)
.build();
Token token = new Token("", "");
OAuthRequest request = new OAuthRequest(Verb.GET, REQ_URL + VAR1 + "/");
service.signRequest(token, request);
Response response = request.send();
System.out.println(response.getBody());
}
}
【问题讨论】:
标签: java oauth scribe two-legged