17

我认为这将是直截了当的,但由于某种原因,我在这个问题上受到了打击。

我正在使用 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

4 回答 4

21

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

于 2013-01-17T06:32:17.373 回答
13

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

启用:

  1. 转到https://console.developers.google.com
  2. 点击左上角的菜单图标
  3. API Manager从菜单中单击
  4. 在搜索栏中搜索您的 API(例如 YouTube Data API v3)并点击它
  5. 进入该 API 的子页面后,单击Enable左上角的
于 2016-01-20T21:23:36.757 回答
4

删除所有“允许的 IP”,然后删除允许的任何 IP

于 2014-04-30T05:53:16.590 回答
0

我按顺序尝试了上面列出的解决方案,但未能得到结果。发生这种情况时,YouTube、Dialogflow 和 Google+ API 集成已经停用了几个月。

最终唯一的解决方案是:

  • 创建一个新项目
  • 创建一个新密钥
  • 复制应用程序限制下的 IPv4 和 IPv6 地址
  • 根据您的应用程序的需要更新API 限制
于 2020-03-29T04:23:18.280 回答