gpt4 book ai didi

python - 带有 Django 的 Dropbox API - 身份验证

转载 作者:行者123 更新时间:2023-11-30 22:21:57 25 4
gpt4 key购买 nike

我正在尝试学习 Dropbox API 并希望使用 OAuth 2 进行授权。我收到以下错误:

dropbox_auth_start() missing 1 required positional argument: 'request'

这是我的代码:

View .py

from dropbox import DropboxOAuth2Flow
from django.shortcuts import redirect

def get_dropbox_auth_flow(web_app_session):
redirect_uri = "https://www.my-dummy-url.com"
APP_KEY = 'my-app-key'
APP_SECRET = 'my-app-secret'
return DropboxOAuth2Flow(
APP_KEY, APP_SECRET, redirect_uri, web_app_session, "dropbox-auth-csrf-token")

def dropbox_auth_start(web_app_session, request):
if request.method == 'GET':
authorize_url = get_dropbox_auth_flow(web_app_session).start()
return redirect(authorize_url)

url.py

urlpatterns = [
path('dropbox/', views.dropbox_auth_start, name='dropbox')
]

最佳答案

旁白...如 @at14也就是说,请求对象需要作为第一个参数。第一个参数请求对象(在本例中,web_app_session 是请求对象)。不需要名为“request”的第二个参数(在 dropbox_auth_start 函数中)。

更重要的是,需要在请求对象上调用 session 对象,如下所示:web_app_session.session

def dropbox_auth_start(web_app_session):
authorize_url = get_dropbox_auth_flow(web_app_session.session).start()
return redirect(authorize_url)

本质上,web_app_session == request,因此添加 if block ,您将得到:

def dropbox_auth_start(web_app_session):
if web_app_session.method == 'GET':
authorize_url = get_dropbox_auth_flow(web_app_session.session).start()
return redirect(authorize_url)

当然,web_app_session可以通过request来切换。

关于python - 带有 Django 的 Dropbox API - 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48482899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com