错误400:invalid_request为了确保用户的安全,已阻止带外(OOB)流



使用此quickstart.ipynb我收到这个错误你不能登录,因为"myapp";发送了一个无效的请求。您可以稍后再试,或者就此问题与开发人员联系。了解有关此错误的详细信息如果您是myapp的开发人员,请参阅错误详细信息。错误400:invalid_request

错误400:invalid_request带外(OOB(流已被阻止,以确保用户的安全。按照下面开发人员文档中链接的带外(OOB(流迁移指南,将您的应用程序迁移到其他方法。请求详细信息:redirect_uri=urn:ietf:wg:oauth:2.0:oob

这是运行的代码

from apiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
CLIENT_CONFIG = {
'installed': {
'client_id':'----------------------------------------------------------',
'client_secret': '------------------------------------------------------',
'auth_uri':'https://accounts.google.com/o/oauth2/auth',
'token_uri':'https://oauth2.googleapis.com/token'
}
}
SCOPES = ['https://www.googleapis.com/auth/androidmanagement']
flow = InstalledAppFlow.from_client_config(CLIENT_CONFIG, SCOPES)
credentials = flow.run_console()
androidmanagement = build('androidmanagement', 'v1', credentials=credentials)
print('nAuthentication succeeded.')

由于谷歌已经弃用OOB

如果您使用google_auth_oauthlib包,则必须使用新方法run_local_server((

更换线路

credentials = flow.run_console()

credentials = flow.run_local_server()

带外(OOB(流已被阻塞。

使用以下代码替换您的"您的客户id"one_answers"您的客户端机密">

from apiclient.discovery import build
from google_auth_oauthlib.flow import Flow
# This is a public OAuth config that you can use to run this guide.
# However, use different credentials when building your own solution.
CLIENT_CONFIG = {
'web': {
'client_id':'your client id',
'auth_uri':'https://accounts.google.com/o/oauth2/auth',
'token_uri':'https://oauth2.googleapis.com/token',
'auth_provider_x509_cert_url':'https://www.googleapis.com/oauth2/v1/certs',
'client_secret':'your client secret'
}
}
SCOPES = ['https://www.googleapis.com/auth/androidmanagement']
CALLBACK_URL = 'https://google.github.io/android-management-api-    samples/oauth_callback.html'
# Run the OAuth flow.
flow = Flow.from_client_config(CLIENT_CONFIG, SCOPES)
flow.redirect_uri = CALLBACK_URL
auth_url, _ = flow.authorization_url()
print('Please visit this URL to authorize this application:     {}'.format(auth_url))
code = input('Enter the authorization code: ')
flow.fetch_token(code=code)
# Create the API client.
androidmanagement = build('androidmanagement', 'v1',     credentials=flow.credentials)
print('nAuthentication succeeded.')

Android管理API快速入门的完整链接https://colab.research.google.com/github/google/android-management-api-samples/blob/master/notebooks/quickstart.ipynb

最新更新