当然其他人正在使用API,我查看并搜索过,在验证时,我似乎无法找到为scope参数放置的正确值:
我查看了所有这些范围列表,没有,尝试过OAuth 2.0游乐场,翻译不存在。
欢迎任何线索,谢谢。
错误讯息:
Error: invalid_request
Missing required parameter: scope
Learn more
Request Details
更新
用户Ezra解释说,Translation API不需要OAuth2身份验证。
我沿着这条路走下了这条路:
我试图让示例代码在这里工作:
并没有apiclient.discovery模块
from apiclient.discovery import build
我去寻找让我降落的here to this quick-start configurator 这给了我一个自动生成的翻译api项目here:
这个应该为Translation API量身定制的入门项目包括一大堆OAuth配置,所以我最后提出问题是因为这里提到的错误
exception calling translation api: <HttpError 400 when requesting https://www.googleapis.com/language/translate/v2?q=zebra&source=en&alt=json&target=fr&key=MYSECRETKEYWENTHERE returned "Bad Request">
我正在使用的代码用这种方式调用哪个错误:
service = build('translate', 'v2',
developerKey='MYSECRETKEYWENTHERE')
result = service.translations().list(
source='en',
target=lang,
q='zebra'
).execute()
如果我直接拨打相同的电话,错误就会抱怨,那就可以了。
https://www.googleapis.com/language/translate/v2?key=MYSECRETKEYWENTHERE&q=zebra&target=fr&alt=json&source=en
再次更新
好的,我从示例项目中删除了所有OAuth代码,然后再次运行它,然后终于发现我的密钥中有一个拼写错误... donk
感谢您的回答!
谢谢
答案 0 :(得分:4)
我认为您误解了OAuth范围的用途。您没有列出任何代码,因此我将解释一些概念,并希望您可以将它们应用到您的情况中。
OAuth范围的目的是访问有关经过身份验证的用户的信息。每个应用程序的范围都不同,并确定授予应用程序访问权限的用户的哪些信息。
具体而言,OAuth请求的范围参数为
https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile
登录时会向用户显示类似于以下内容的提示:
+ View basic information about your account
* View your name, public profile URL, and photo
* View your gender and birthdate
* View your country, language, and timezone
+ View your email address
* View the email address associated with your account
只有https://www.googleapis.com/auth/userinfo.email
的人会显示如下内容:
+ View your email address
* View the email address associated with your account
要使用Translate API,您不必让用户通过OAuth进行身份验证。您只需获得一个API密钥,并在您的服务请求中提供该密钥。
使用Translate API与OAuth的使用完全正交。
正如Translate API site所述,要翻译某些内容,您只需向
发出请求即可https://www.googleapis.com/language/translate/v2?parameters
使用适当的参数。
所需参数如文档中所列,
具体而言,将文本“hello world”翻译成德语的请求将是:
https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world
查看parameters specification以了解您必须提供的内容。
查看Python example using the Translate API的来源或查找API library for the language you want to use。
您将在示例中看到没有提及OAuth范围,因为不需要对Translate API服务进行身份验证。您只需提供API密钥,并在请求中将要翻译的文本提供给服务。
可能存在需要范围的API调用,但Translate不是其中之一。
如果您需要有关于用户的某些信息,则必须查找访问该信息所需的API和范围。然后,您将根据需要将此信息提供给Translate API。
400
:如果您收到错误回复,那就很好,因为对该服务的调用正在进行,即使它没有按照您的意愿行事。
对于400
,Translate API的回复会在回复中为您提供有关错误的线索。
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "keyInvalid",
"message": "Bad Request"
}
],
"code": 400,
"message": "Bad Request"
}
}
上述响应表示密钥无效。您可以通过Google API Console申请新的(或查找旧的)。
400
,则回复中会包含一些可用于调试问题的信息。答案 1 :(得分:1)
根据Google's documentation,您必须查看特定API的文档。
根据this Google Group question更新:
“Translate API(v1和v2)都是未经身份验证的API,因此您无需使用OAuth。相反,对于v2,您应该使用API密钥,您可以在此处获取:{{ 3}}“
答案 2 :(得分:0)
有关错误消息
错误:invalid_request 缺少必需参数:范围
您需要在表单中添加范围
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo#email https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/tasks https://www-opensocial.googleusercontent.com/api/people https://www.googleapis.com/auth/plus.login" />
请将spring social login与linkedin,facebook,twitter和Google提供商联系。