代码如下:
from typing import List
from google_auth_oauthlib.flow import InstalledAppFlow
PATH_FILE_SECRETS: str = secrets.json'
SCOPES: List[str] = ['https://www.googleapis.com/auth/gmail.readonly']
LOCAL_REDIRECT_SERVER_DOMAIN='thermotest.ddns.net'
LOCAL_REDIRECT_SERVER_PORT=80
flow: InstalledAppFlow = InstalledAppFlow.from_client_secrets_file(PATH_FILE_SECRETS, SCOPES)
credentials = flow.run_local_server(LOCAL_REDIRECT_SERVER_DOMAIN, LOCAL_REDIRECT_SERVER_PORT)
我使用google-auth-oauthlib
版0.2.0
(last version)。
而且,我已经注册了此重定向URL:
http://thermotest.ddns.net:80
问题在于方法“ run_local_server
”生成的URL以斜杠结尾:
...&redirect_uri=http%3A%2F%2Fthermotest.ddns.net%3A80%2F...
解码后的值将为:
http://thermotest.ddns.net:80/
因此,Google抱怨:
请求http://thermotest.ddns.net:80/中的重定向URI与为OAuth客户端授权的重定向URI不匹配。
这是正常现象,因为“ http://thermotest.ddns.net:80/
”与“ http://thermotest.ddns.net:80
”不完全相同。
如果我通过删除最后一个“ %2F
”(删除最后一个斜杠)来修改URL,则可以。
我的问题是:为什么“ run_local_server
”会在重定向URL的末尾系统地添加斜线?我可以告诉该方法不要这样做吗?