【问题标题】:Goo.gl URL Shortener Stopped Working (php/curl)Goo.gl URL Shortener 停止工作 (php/curl)
【发布时间】:2015-03-23 15:26:02
【问题描述】:

由于某种原因,我的脚本今天停止工作。当我查看 API 控制面板时说我还有 100% 的剩余使用量。有任何想法吗?他们改变了授权方式吗?

function url_small($url)
    {
        //This is the URL you want to shorten
        $longUrl = $url;
        $apiKey = '#####HIDDEN######';
        //Get API key from : http://code.google.com/apis/console/

        $postData = array('longUrl' => $longUrl, '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);
        curl_close($curlObj);

        return $json->id;
    }

回应

stdClass Object
(
    [error] => stdClass Object
        (
            [errors] => Array
                (
                    [0] => stdClass Object
                        (
                            [domain] => usageLimits
                            [reason] => dailyLimitExceededUnreg
                            [message] => Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.
                            [extendedHelp] => https://code.google.com/apis/console
                        )

                )

            [code] => 403
            [message] => Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.
        )

)

【问题讨论】:

  • 在错误消息中说:已超过未验证使用的每日限制。继续使用需要注册。我猜你需要注册,嗯?
  • @RobertHarvey 是的,这让我感到困惑。它正在传递应该是身份验证的api密钥,今天使用的api为0。
  • 检查here 并报告。
  • @RobertHarvey 这有什么帮助?真的吗?没关系。我找到了他们需要的更改并使其正常工作。祝你有个好的一天。如果问题没有被搁置,我会添加修复。
  • Rob - 这篇文章对我非常有用,因为我遇到了同样的问题。我很高兴理查德推动发现并发布修复,这要归功于您的迂腐方法。对你有好处,理查德。非常感谢。

标签: php curl goo.gl


【解决方案1】:

我的以下答案不再有效。 Google 现在让您使用 Firebase 进行 URL 缩短。易于设置。

https://firebase.google.com/docs/dynamic-links/rest


所以事实证明,这个在多个网站中显示的旧功能现在也需要在 URL 部分显示 api 密钥,以便 google 将请求注册到您的帐户。

curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');

切换到这个

curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url?key='.$apiKey);

【讨论】:

  • 谢谢 - 没有你的帖子就无法解决这个问题!
  • 太棒了 - 在这里我一直用头撞墙,直到找到你的帖子,干杯!
  • 拯救了我的夜晚! Tnx :)
猜你喜欢
  • 2013-09-03
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多