python - 授权错误错误 400:redirect_uri_mismatch
问题描述
为什么会出现此错误以及我该如何解决:
您无法登录此应用,因为它不符合 Google 的 OAuth 2.0 政策
当我在浏览器中打开该 url 后单击授权 url 时。
我正在遵循 python Gmail API 快速入门指南来授权用户使用 Gmail API。我在 Google 控制台上创建了一个 Web 应用程序类型的应用程序并生成了它的 credentials.json 文件。我提供了一个 redirect_uri 。
当我运行 quickstart.py.当我在浏览器中打开该 url 后单击授权 url 时。
在浏览器中打开链接后,它显示此错误:-
我不知道为什么会出现这个问题。我想调用 Gmail API。
创建云帐户:- [1]:https ://i.stack.imgur.com/hls5P.png [2]:https ://i.stack.imgur.com/2zHW0.png [3]:https:/ /i.stack.imgur.com/oeMgf.png
SCOPES = ['https://www.googleapis.com/auth/gmail.readonly']
creds = None
if os.path.exists('token.json'):
creds =Credentials.from_authorized_user_file('token.json', SCOPES)
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file( 'creds.json', SCOPES)
creds = flow.run_local_server()
with open('token.json', 'w') as token:
token.write(creds.to_json())
service = build('gmail', 'v1', credentials=creds)
results = service.users().labels().list(userId='me').execute()
解决方案
正如 API 在错误页面中所述,您可能错误地配置了登录页面的 redirect_uri。请确保您没有任何与“http”-“https”相关的拼写错误。去年我在设置登录页面时遇到了同样的问题,我没有使用带有 https 的 URL,而是使用 http 输入了一个 URL。
您还应该仔细检查 redirect_uri 并确保登录 url 具有 redirect_uri 参数。没有它,谷歌无法识别登录页面将被重定向到哪里。
如果这没有帮助,请转到您项目的控制台并查看 API 访问。您应该在那里看到您的客户端 ID 和客户端密码,以及重定向 URI 列表。如果未列出所需的 URI,请单击编辑设置并将 URI 添加到列表中。
推荐阅读
- powerbi - 如何在 Power BI 或 Power 查询中操作数据行
- python-3.x - 在目录中查找文件夹(Python 3)
- bash - Bash multiple ors 不适用于否定词
- google-cloud-platform - GKE / Cloud IAM 工作负载身份设置错误 403
- swiftui - SwiftUI:步进绑定在子视图中不起作用
- reactjs - React:在函数内部访问 this.state 会引发错误
- python - 如何编写创建随机用户名和密码 selenium python
- gobblin - 安装地精时构建失败
- java - 如何在结果集响应上使用 Group by
- python - I can't import cv2,vlc and numpy python pycharm