ユーザーのパスワードをリセットするために、ランダムで一意のパスワードを生成するかなり単純なスクリプトを作成しました。パスワードをプレーン テキストとして電子メールで送信するのは嫌いなので、スクリプトを使用してパスワードを画像に変換し、サーバーに保存します。スクリプトはパスワードとパスワードの画像を返し、Google URL-Shortener API を使用してパスワード画像の URL を短縮することになっていました。
これは私たちのオフィスでのみ使用されるものであり、ページの URL は公開されていないため、OAuth 2.0 の代わりに API キーを使用することにしました。
うまく機能していたのに、突然短縮 URL の提供を停止しました。エラーを表示し、このエラーを返し始めたように、小さなエラー処理コードを追加しました。
403 - 認証されていない使用の 1 日あたりの制限を超えました。継続利用には会員登録が必要です。
短縮URLを取得するために使用する関数は次のとおりです。
function shortURL($ImgID)
{
// This is the URL to shorten
$ImgURL = 'http://www.mywebsite.com/temp/'.$ImgID.'.jpg';
// Get API key from : http://code.google.com/apis/console/
$apiKey = 'MY_API_KEY'; //browser key
$postData = array('longUrl' => $ImgURL, 'key' => $apiKey);
$jsonData = json_encode($postData);
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
curl_setopt($curlObj, CURLOPT_POST, 1);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);
$response = curl_exec($curlObj);
// Change the response json string to object
$json = json_decode($response);
// Change the response json string to an array
$shortLink = get_object_vars($json);
curl_close($curlObj);
// Error handling
$short = objectToArray($json);
$code = $short['error']['code'];
$message = $short['error']['message'];
return ($shortLink['id']?$shortLink['id']:$code.' - '.$message);
}
私が言ったように、それは正常に機能していましたが、ある日停止しました。API キーを変更しましたが、成功しませんでした。開発者コンソールでクォータを確認しましたが、全体的にもユーザー単位でも、そこで提案されている制限にはほど遠いです。
私の Google-Fu が私を失敗させており、何が変更されたのか、以前に動作していたスクリプトが停止した理由についての説明を見つけることができなかったため、ここに戻ってきました。