3

Web アプリをAppDirectと統合しています。このため、jersey を使用して Java rs API を作成しました。

イベントにサブスクライブすると、リクエストに署名するための oauth 値 (キーとシークレット) を含むマップと、署名フェッチを発行するイベント URL が取得されます。

期待どおりにこれらの値 (oauth と eventurl) を取得しています。

ライブラリsignpostを使用して署名付きフェッチを発行しようとすると、次のコードを使用します。

OAuthConsumer consumer = new DefaultOAuthConsumer(consumer_key, secret);
// create an HTTP request to a protected resource
URL url = new URL(eventUrl);
HttpURLConnection request = (HttpURLConnection) url.openConnection();

// sign the request
consumer.sign(request);

// send the request
request.connect();

次のエラー メッセージが表示されます。

getResponseMessage: Unauthorized
getresponsecode: 401

次のテスト値も試しました。

  1. url = " https://www.appdirect.com/api/integration/v1/events/dummyOrder ";
  2. dummyKey = "ダミー";
  3. dummySecret = "秘密"; しかし、私は同じ結果を得ました。

どうすれば修正できますか?

私もこれを試して追加しました:

request.setRequestMethod("GET");         

request.setRequestProperty("Authorization", "OAuth");

request.setRequestProperty("Host", "...");

request.setRequestProperty("Content-Type", "application/xml");         

request.setRequestProperty("oauth_nonce", oauth_nonce);

request.setRequestProperty("oauth_signature", oauth_signature);

request.setRequestProperty("oauth_signature_method", oauth_signature_method);

request.setRequestProperty("oauth_timestamp", oauth_timestamp);

request.setRequestProperty("oauth_version", oauth_version);

key:secretAuthorization プロパティでも試してみました

4

1 に答える 1

2

ダミーキー (oauth)

認証なし

Postman Chrome 拡張機能を介してテストする場合のこのサービスの動作を次に示します。OAuth プロバイダーを使用している場合は、AppDirect とシークレットの有効な API キーを取得する必要があります。

ところで、2 番目のスクリーンショットは、OAuth トークンを appdirect にhttps://www.appdirect.com/api/integration/v1/events/dummyOrderに送信する必要がないことを示しています。これは、任意の URL を承認するためです。

したがって、メモによると、適切な(シークレットとキー)を追加する必要があり、AppDirect OAuth サーバーは、AppDirect のリポジトリに対処するときに使用する有効なトークンを返します。または、リクエストごとにキーシークレットを送信することもできます。

于 2016-05-31T07:21:24.960 に答える