谷歌翻译Oauth2.0来自浏览器

时间:2018-06-18 14:00:06

标签: javascript google-translate google-translation-api

我正在创建一个使用Google翻译服务的简单网页。

页面有一个字段,用于接收用户的输入,以及一个按钮,用于触发对Translation API的调用。它将结果转换返回给用户。

我使用Ajax请求成功完成了上面的流程,但访问令牌 是硬编码到我的方法中,我想将其更改为每当令牌过期时发送的调用(目前我必须使用Google CLI请求新令牌并在我的代码中替换它)。

我对Oauth2.0有一个非常基本的了解,并且我已经阅读了Google文档,但找不到它的一部分会告诉我端点要求从客户端获取访问令牌。< / p>

有人能指出我正确的方向吗?

这是我的代码:

HTML:

<form id="translate_form">
    <input id="input" />
    <button id="translate_button">Translate</button>
</form>

的Javascript

$("#translate_form").submit(function () {
        var text = $("#input").val()
        sendTranslationRequest(text);
        return false;
    })


    function sendTranslationRequest(inputText) {
        var requestBody = {
            q: inputText,
            source: "en",
            target: "fr",
            format: 'text'
        }

        translationAjaxRequest(requestBody);
    }

    function translationAjaxRequest(requestBody) {
        var access_token = [access_token]
        $.ajax({
            url: "https://translation.googleapis.com/language/translate/v2",
            method: "POST",
            contentType: "application/json",
            beforeSend: function (request) {
                request.setRequestHeader("Authorization", "Bearer " + access_token)
            },
            data: JSON.stringify(requestBody),
            success: function (response) {
                var translatedText = response.data.translations[0].translatedText
                alert(translatedText)
            },
            error: function () {
                console.log("An error occurred on the request:", response)
            }
        });
    }

1 个答案:

答案 0 :(得分:0)

获得访问令牌并刷新它的相关端点是:

https://accounts.google.com/o/oauth2/v2/auth

https://www.googleapis.com/oauth2/v4/token

但是,您需要执行几个步骤才能获得访问令牌和刷新令牌。您可能需要查看Using OAuth2.0 for Web Server Applications上的本指南。它将引导您完成令牌的prerequisitesobtaining an access tokenrefreshing

或者,您可以使用API Key。请注意有关如何secure it的建议,因为可能使用了被盗的API密钥来生成将直接从您的计费帐户中扣除的调用。