Google API返回未配置的访问权限

时间:2013-01-15 23:14:27

标签: google-api http-status-code-403

我认为这是直截了当的,但由于某些原因,我在这个问题上受到了重创。

我正在使用PHP + CURL来尝试检索Web字体列表。代码很简单:

        $url = "https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity&key=MY_SERVER_APPS_KEY";

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $google_response = curl_exec($ch);
        curl_close($ch);            

代码正在攻击Google,但$ google_response始终会返回:

"error": {
    "code": 403,
    "errors": [
        {
            "domain": "usageLimits",
            "reason": "accessNotConfigured",
            "message": "Access Not Configured"
        }
    ],
    "message": "Access Not Configured"
}

我已经设置了一个服务器访问密钥,并将我的两个Web服务器的API密钥放在上面。 (为了验证我的IP,我在curlmyip.com上做了一个WGET)我还从服务选项卡启用了“Web Fonts Developer API”。

有什么我可以忽略的吗?

4 个答案:

答案 0 :(得分:20)

我找到了解决方案。显然我需要注册我的服务器的IPv6地址,而不是IPv4。添加后没有任何代码更改工作。

答案 1 :(得分:10)

在我的情况下未启用所需的API

启用:

  1. 转到https://console.developers.google.com
  2. 点击左上角的菜单图标
  3. 点击菜单
  4. 中的\otimes
  5. 在搜索栏中搜索您的API(例如YouTube Data API v3)并点击它
  6. 点击该API的子页面后,点击左上角的启用

答案 2 :(得分:4)

删除所有"允许的Ips",然后删除任何IP

答案 3 :(得分:0)

我按顺序尝试了上面列出的解决方案,但没有得到结果。发生这种情况的几个月以来,YouTube,Dialogflow和Google+ API集成一直处于无效状态。

最终唯一的解决方案是:

  • 创建一个新项目
  • 创建新密钥
  • 应用程序限制
  • 下复制IPv4和IPv6地址
  • 根据应用程序的需求更新 API限制