私はPHPでCurlを使用して自分のサイトにAPIを統合しています。私はアクセストークンを取得し、これを使用してベンダーに注文を処理します。RESTful API - トークンを呼び出して注文を処理する
は、トークン取得:
function getToken() {
// authenticate and return $token
$ch = curl_init();
$api_token = $this->config['API'];
$ninjavan_id = $this->config['ID'];
$ninjavan_secret = $this->config['SECRET'];
curl_setopt($ch, CURLOPT_URL, $api_token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
\"client_id\": \"$id\",
\"client_secret\": \"$secret\",
\"grant_type\": \"client_credentials\"
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json"
));
$response = curl_exec($ch);
curl_close($ch);
$json = json_decode($response, true);
$file = 'key.txt';
$token = $json['access_token'];
file_put_contents('./modules/custommodule/key.txt', $token, LOCK_EX);
}
私は成功したトークンを取得することです、私はコードをテストしています。次に、トークンを使用します。
プロセス順序:どのような援助が大幅に高く評価され
$file = './modules/custommodule/key.txt';
$retrieved_token = file_get_contents($file);
do {
$retry = false;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_order);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
//curl execution
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"Authorization: Bearer $retrieved_token"
));
$response = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpcode === 401) { // unauthorized
getToken();
$retry = true;
}
}
while ($retry);
curl_close($ch);
file_put_contents('./modules/custommodule/response.txt', $response, LOCK_EX);
file_put_contents('./modules/custommodule/results.txt', $httpcode, LOCK_EX);
。期限切れにトークンをリフレッシュするガイダンスを指摘できれば完璧です。
ありがとうございます。
あなたのjson POSTフィールドに直接入力する代わりに、 'json_encode()'関数を使って配列を使ってコードをクリアする必要があります! – Odyssey1111