我正在创建一个使用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)
}
});
}
答案 0 :(得分:0)
获得访问令牌并刷新它的相关端点是:
https://accounts.google.com/o/oauth2/v2/auth
https://www.googleapis.com/oauth2/v4/token
但是,您需要执行几个步骤才能获得访问令牌和刷新令牌。您可能需要查看Using OAuth2.0 for Web Server Applications上的本指南。它将引导您完成令牌的prerequisites,obtaining an access token和refreshing。
或者,您可以使用API Key。请注意有关如何secure it的建议,因为可能使用了被盗的API密钥来生成将直接从您的计费帐户中扣除的调用。