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不匹配
错误

我正在使用重定向uri
urn: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是否可以“安装”与这个问题无关,但我可能错了