我创建了一个相当简单的脚本,它会为我生成一个随机且唯一的密码来重置用户的密码。因为我讨厌通过电子邮件以纯文本形式发送密码,所以我的脚本将密码转换为存储在我的服务器上的图像。该脚本返回密码、密码图像,并且应该使用 Google URL-Shortener API 缩短密码图像的 URL。
由于这仅在我们的办公室中使用,并且页面的 URL 不公开,因此我选择使用 API-Key 而不是 OAuth 2.0。
它工作得很好,然后突然停止提供缩短的 URL。我添加了一些错误处理代码,因此它会显示错误并开始返回此错误:
403 - 超出未经验证使用的每日限制。继续使用需要注册。
这是我用来获取缩短 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 让我失望了,而且我无法找到任何解释来解释发生了什么变化以及为什么我以前的工作脚本停止了。