【问题标题】:Google translation Oauth2.0 from browser从浏览器谷歌翻译Oauth2.0
【发布时间】:2018-11-27 09:40:09
【问题描述】:

我正在创建一个使用 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)
            }
        });
    }

【问题讨论】:

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


    【解决方案1】:

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

    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 密钥可能会被用于生成将直接计入您的结算帐户的调用。

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 2012-11-03
      • 2011-10-16
      • 2016-01-12
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 2019-05-11
      • 2011-12-26
      相关资源
      最近更新 更多