0

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

该页面有一个用于接收用户输入的字段和一个用于触发对翻译 API 的调用的按钮。它将结果翻译返回给用户。

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

我对 Oauth2.0 有非常基本的了解,并且我已经阅读了 Google 文档,但找不到可以告诉我调用端点以从客户端获取访问令牌的部分内容。

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

这是我的代码:

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)
            }
        });
    }
4

1 回答 1

0

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

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

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

但是,您需要执行几个步骤才能获得访问令牌和刷新令牌。您可能需要查看有关将 OAuth2.0 用于 Web 服务器应用程序的指南。它将引导您完成先决条件获取访问令牌刷新您的令牌。

或者,您可以使用API Key。请注意有关如何保护它的建议,因为被盗的 API 密钥可能会用于生成将直接计入您的帐单帐户的调用。

于 2018-08-23T20:00:00.157 回答