私は郵便配達員でワンクリックで認証されたリクエストを送信しようとしています。
そのため、「Oauth」という名前のリクエストと トークンを保存するためにテストを使用しています がローカル変数にあります。
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("token", jsonData.access_token);
私が今やろうとしているのは、ベアラートークンを必要とする他のすべてのリクエストに対してOauthリクエストを(事前リクエストスクリプトから)自動的に実行することです).
アクセストークンを取得し、1回の郵便配達員ボタンクリックで認証済みリクエストを送信する方法はありますか?
注:現在、isが事前要求スクリプトでこれを行う方法です。 その他の回答 を参照してください。後世のためにこの回答を続けますが、誰もが知っているように:)
事前要求スクリプトでこれを行う方法はまだないと思いますが、変数と[テスト]タブを使用すると、数回クリックするだけで取得できます。 Postmanブログに詳しい説明があります 、しかしその要点は次のとおりです。
そのリクエストのTestsセクションで、そのリクエストの結果を変数に保存します。おそらく次のようなものです。
var data = JSON.parse(responseBody);
postman.setEnvironmentVariable("token", data.token);
認証要求を実行します-token
がその環境に設定されていることがわかります(右上の目の形のアイコンをクリックします)。
{{token}}
を使用するようにデータリクエストを設定します。トークンを更新するには、認証要求を再実行するだけです。
少し遅れましたが、この投稿に出くわした人のために、ISからPre-request Script
セクション。いくつかの例をここで見つけることができます: https://Gist.github.com/madebysid/b57985b0649d3407a7aa9de1bd32799
KBuscが言及し、それらの例からヒントを得たように、次のような事前要求スクリプトを設定することで目標を達成できます。
pm.sendRequest({
url: pm.environment.get("token_url"),
method: 'GET',
header: {
'Authorization': 'Basic xxxxxxxxxx==',
}
}, function (err, res) {
pm.environment.set("access_token", res.json().token);
});
次に、単に{{access_token}}
他の環境変数として。
各Postman要求の前に実行される事前要求スクリプトをコレクションに追加できます。たとえば、次を使用してApigeeからアクセストークンを返します
const echoPostRequest = {
url: client_credentials_url,
method: 'POST',
header:
'Authorization: Basic *Basic Authentication string*'
};
var getToken = true;
if (!pm.environment.get('token'))
{
console.log('Token missing')
}
else
{
console.log('Token all good');
}
if (getToken === true) {
pm.sendRequest(echoPostRequest, function (err, res) {
console.log(err ? err : res.json());
if (err === null) {
console.log('Saving the token');
console.log(res);
var responseJson = res.json();
console.log(responseJson.access_token);
pm.environment.set('token', responseJson.access_token)
}
});
}