私の Web アプリには、さまざまな関数で定義されたすべての curl API 呼び出しを持つ function.php があります。
Google ドライブ API v3 呼び出しでユーザー レート制限超過の問題を回避するために、レート制限/バックオフを設定したいと考えています。
functions.php の関数の例:
function copyfilefromyou($id, $token, $folder)
{
$url = "https://www.googleapis.com/drive/v3/files/$id/copy?supportsAllDrives=true&supportsTeamDrives=true";
$authorization = "Authorization: Bearer $token";
$data = array(
"parents" => [["id" => $folder]],
'description' => 'Copying your file'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
$authorization
));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
$json = json_decode($result, true);
curl_close($ch);
return $json;
}