首页 > 解决方案 > 授权错误错误 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 时。

在浏览器中打开链接后,它显示此错误:-

https://accounts.google.com/signin/oauth/error?authError=ChVyZWRpcmVjdF91cmlfbWlzbWF0Y2gSsAEKWW91IGNhbid0IHNpZ24gaW4gdG8gdGhpcyBhcHAgYmVjYXVzZSBpdCBkb2Vzbid0IGNvbXBseSB3aXRoIEdvb2dsZSdzIE9BdXRoIDIuMCBwb2xpY3kuCgpJZiB5b3UncmUgdGhlIGFwcCBkZXZlbG9wZXIsIHJlZ2lzdGVyIHRoZSByZWRpcmVjdCBVUkkgaW4gdGhlIEdvb2dsZSBDbG91ZCBDb25zb2xlLgogIBptaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vaWRlbnRpdHkvcHJvdG9jb2xzL29hdXRoMi93ZWItc2VydmVyI2F1dGhvcml6YXRpb24tZXJyb3JzLXJlZGlyZWN0LXVyaS1taXNtYXRjaCCQAyomCgxyZWRpcmVjdF91cmkSFmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8%3D&client_id=221990959960-40vsl59admu9j2v8lab1h7rgivo3o7ue.apps.googleusercontent.com

我不知道为什么会出现这个问题。我想调用 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()

标签: python

解决方案


正如 API 在错误页面中所述,您可能错误地配置了登录页面的 redirect_uri。请确保您没有任何与“http”-“https”相关的拼写错误。去年我在设置登录页面时遇到了同样的问题,我没有使用带有 https 的 URL,而是使用 http 输入了一个 URL。

您还应该仔细检查 redirect_uri 并确保登录 url 具有 redirect_uri 参数。没有它,谷歌无法识别登录页面将被重定向到哪里。

如果这没有帮助,请转到您项目的控制台并查看 API 访问。您应该在那里看到您的客户端 ID 和客户端密码,以及重定向 URI 列表。如果未列出所需的 URI,请单击编辑设置并将 URI 添加到列表中。


推荐阅读