Two-legged OAuth を使用してリクエストを認証し、レスポンスを送信する別の会社のカスタム API に接続しようとしています。
現時点では、コードはリクエストを送信していますが、相手側で認証されていないため、UNAUTHORIZED レスポンスを送信しています。
これまでに調査した手順は次のとおりです。
- 同じ資格情報を使用して Python で OAuth 実装を使用してリモート サイトに接続しました。
- 他の会社に、私たちの OAuth リクエストを成功した別の会社と比較して、私たちの OAuth リクエストに欠けているものがあるかどうかを確認するよう依頼しました。
上記の 2 番目のポイントの後、私たちのリクエストと別の有効なリクエストの唯一の違いは、oauth_token
パラメーターが私たちのリクエストに存在し、他のリクエストには存在しないことです。さらに、彼はoauth_body_hash_value
、ほとんどのリクエストには がありますが、私たちのリクエストには存在しないと言いました。
oauth_token
Scribe でパラメータを削除する方法はありますか? または、 はoauth_body_hash_value
常に必要ですか? リクエストはなくても機能しますか?
以下のコードを含めました。OAuth はまったく初めてなので、他に何か問題がある場合はお気軽にお知らせください。
TestAPI.class は DefaultAPI10a を拡張し、必要な 3 つのメソッドすべてに対して "" を返すだけであることに注意してください。
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());
}
}