http - 谷歌翻译 API v2 : Allowing certain HTTP referrers

标签 http google-api google-translate

我正在使用客户端 Google 的翻译 API (v2),这意味着我的 API key 将对所有人公开。我正在通过 AJAX 调用 /translate 方法。

在谷歌下>凭据> API key -> key 限制->应用程序限制

我想只允许从 www.aliceandbob.com 域调用 API。

在以下位置添加此域后:HTTP 引荐来源网址(网站)。我收到 403 forbidden 错误,但是当我在我的 http 请求中手动设置 http referer header 时,它通过了并且 API 以答案响应我。

    function sendPost($data)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://translation.googleapis.com/language/translate/v2");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
-->       curl_setopt($ch, CURLOPT_REFERER, "http://www.aliceanbob.com");
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }

并像这样传递数据

$data = array('q' => '这就是世界', 'target' => 'de', 'key' => "#my_api_key#");

Responses OK 200.

但是当我删除时:

curl_setopt($ch, CURLOPT_REFERER, "http://www.aliceandbob.com");

我得到了回应:

403 Forbidden Requests from referer \u003cempty\u003e are blocked.

知道如何防止只有一个网站(域)可以正确调用 API,但不让任何其他人手动设置 http referer 和行为域(www.aliceandbob.com)吗?

最佳答案

在应用程序限制 - HTTP 引荐来源网址(网站)中,您必须添加:http://www.aliceandbob.com/* 或:http://*.aliceandbob.com/*

enter image description here

关于http - 谷歌翻译 API v2 : Allowing certain HTTP referrers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49454315/

相关文章:

google-translate - 谷歌翻译查询参数是什么意思?

javascript - 谷歌使用 javascript 英语翻译成法语,无需从页面加载的下拉列表中选择值

ios - 使用 Swift 和 Alamofire 从谷歌翻译中取回 nil

javascript - 登录表单 API 响应代码

error-handling - Google的有关指数补偿的文档是否不一致?

javascript - javascript 中的 Google Calendar API 时区覆盖

java - 缺少有关 Google Translation API 客户端问题的有效 API key ?

java - 如何在 Java 中执行 HTTP GET?

java - 使用返回 `java.io.InputStream` 的可靠超时读取 http 页面的类

java - Netty 中是否有类似 transferFrom 的零拷贝功能?