Python 为什么我会得到;重定向“u uri”和“u missmatch”;?
我正在尝试授权使用。我猜我的请求有问题,因为我得到了一个Python 为什么我会得到;重定向“u uri”和“u missmatch”;?,python,google-calendar-api,google-oauth,google-api-python-client,Python,Google Calendar Api,Google Oauth,Google Api Python Client,我正在尝试授权使用。我猜我的请求有问题,因为我得到了一个redirect\u uri不匹配错误 我正在使用重定向uriurn:ietf:wg:oauth:2.0:oob,这是我在中的项目中的本机应用程序 登录页面将用户重定向到Google授权页面,/oauth2callback使用生成的Google代码从提交的表单中获取信息。 代码是 @app.route('/login') def login(): flow = OAuth2WebServerFlow(client_id=CLIENT
redirect\u uri不匹配
错误
我正在使用重定向uriurn:ietf:wg:oauth:2.0:oob
,这是我在中的项目中的本机应用程序
登录页面将用户重定向到Google授权页面,/oauth2callback使用生成的Google代码从提交的表单中获取信息。
代码是
@app.route('/login')
def login():
flow = OAuth2WebServerFlow(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
scope='https://www.googleapis.com/auth/calendar',
redirect_uri='urn:ietf:wg:oauth:2.0:oob',
approval_prompt='force',
access_type='offline')
auth_uri = flow.step1_get_authorize_url()
return redirect(auth_uri)
@app.route('/oauth2callback', methods=['POST', 'GET'])
def oauth2callback():
code = request.form['code']
if code:
# exchange the authorization code for user credentials
flow = OAuth2WebServerFlow(CLIENT_ID,
CLIENT_SECRET,
scope="https://www.googleapis.com/auth/calendar",
redirect_uri='urn:ietf:wg:oauth:2.0:oob')
flow.redirect_uri = request.base_url
try:
credentials = flow.step2_exchange(code)
storage = Storage('credentials.dat')
storage.put(credentials)
except Exception as e:
logging.warning("Unable to get an access token because "+e.message)
return redirect('/')
重定向uri必须与您在开发人员控制台中设置的重定向uri匹配。”urn:ietf:wg:oauth:2.0:oob'是针对本机客户端的,您创建了哪种类型?我创建了一个本机应用程序,正如我所说的“已安装的应用程序”,我认为这是同一件事。抱歉,我的python知识非常有限,我以为它只是一种web脚本语言。我没有发布可以安装它的消息。我尝试过重新记录您的问题,有Python技能的人应该能够帮助您。我不是舒尔,我不知道您所说的“已安装”是什么意思。问题是,这将在一台随机本地ip地址(192.168.x.x)的计算机上本地运行,只能从本地网络访问。因此,我不能使用重定向uri,也不能使用静态ip。我选择它作为“已安装的应用程序”,因为这样我就可以使用urn:ietf:wg:oauth:2.0:oob重定向uri。我认为python是否可以“安装”与这个问题无关,但我可能错了