sla*_*tir 3 google-app-engine oauth-2.0 google-api-client oauth2client oauth2-playground
我查找并搜索了其他人,肯定是其他人正在使用API,在身份验证时,我似乎找不到正确的范围参数值:
我已经查看了所有这些作用域列表,没什么,尝试过OAuth 2.0游乐场,没有翻译。
任何线索都欢迎,谢谢。
错误信息:
Error: invalid_request
Missing required parameter: scope
Learn more
Request Details
Run Code Online (Sandbox Code Playgroud)
更新资料
用户Ezra解释说,翻译API不需要OAuth2身份验证。
我沿着这条路走这条路:
我正在尝试使示例代码在这里工作:
而且没有apiclient.discovery模块
from apiclient.discovery import build
Run Code Online (Sandbox Code Playgroud)
我去了寻找那它落在我这里这个快速启动配置 这给了我一个自动生成翻译API项目在这里:
这个应该为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">
Run Code Online (Sandbox Code Playgroud)
我用来进行上述调用的代码,这种方式的错误是:
service = build('translate', 'v2',
developerKey='MYSECRETKEYWENTHERE')
result = service.translations().list(
source='en',
target=lang,
q='zebra'
).execute()
Run Code Online (Sandbox Code Playgroud)
如果我直接拨打该错误抱怨的电话,那就可以了
https://www.googleapis.com/language/translate/v2?key=MYSECRETKEYWENTHERE&q=zebra&target=fr&alt=json&source=en
Run Code Online (Sandbox Code Playgroud)
再次更新
好的,我从示例项目中删除了所有OAuth代码,然后再次运行它,最后发现我的密钥中有错字...
感谢您的回答!
。
谢谢
我认为您误解了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
Run Code Online (Sandbox Code Playgroud)
虽然只有一个https://www.googleapis.com/auth/userinfo.email会显示类似以下内容:
+ View your email address
* View the email address associated with your account
Run Code Online (Sandbox Code Playgroud)
要使用Translate API,您不必让用户通过OAuth进行身份验证。您只需获取一个API密钥,然后在对服务的请求中提供该密钥。
Translate API的使用与OAuth的使用完全正交。
如Translate API网站上所述,要翻译内容,您只需向
https://www.googleapis.com/language/translate/v2?parameters
Run Code Online (Sandbox Code Playgroud)
与适当的参数。
如文档中所列,所需的参数是
具体而言,将文本“ hello world”翻译成德语的请求将是:
https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world
Run Code Online (Sandbox Code Playgroud)
查看参数规范以了解您必须提供的内容。
使用Translate API查看Python示例的源代码,或查找您要使用的语言的API库。
您将在示例中看到,没有提到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"
}
}
Run Code Online (Sandbox Code Playgroud)
上面的响应表明密钥无效。您可以通过Google API控制台请求一个新的(或查找旧的)。
400,响应将包括一些信息,您可以使用这些信息来调试问题。根据Google 的文档,您必须查看特定 API 的文档。
根据此 Google 群组问题进行更新:
“翻译 API(v1 和 v2)是未经身份验证的 API,因此您不需要使用 OAuth。相反,对于 v2,您应该使用 API 密钥,您可以在此处获取该密钥: http://code .google.com/apis/console “
| 归档时间: |
|
| 查看次数: |
4549 次 |
| 最近记录: |