在python-social-auth中使用gspread,可以实现通过Google账号进行用户身份验证,并使用gspread库访问Google Sheets。
pip install python-social-auth gspread
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'your_client_id'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'your_client_secret'
SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = ['https://www.googleapis.com/auth/spreadsheets']
SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {'access_type': 'offline'}
SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URI = 'http://localhost:8000/complete/google-oauth2/'
将your_client_id
和your_client_secret
替换为在Google开发者控制台中获取到的客户端ID和客户端密钥。
from django.urls import path
from social_django.urls import urlpatterns as social_django_urls
urlpatterns = [
# your other URLs
path('social-auth/', include(social_django_urls, namespace='social')),
]
from django.shortcuts import render
import gspread
from oauth2client.service_account import ServiceAccountCredentials
from social_django.models import UserSocialAuth
def my_view(request):
user = request.user
social = UserSocialAuth.objects.get(user=user, provider='google-oauth2')
credentials = ServiceAccountCredentials.from_json_keyfile_dict(social.extra_data['access_token'])
gc = gspread.authorize(credentials)
sheet = gc.open('your_spreadsheet').sheet1
# 在这里可以使用gspread库进行Google Sheets的读写操作
return render(request, 'my_template.html')
将your_spreadsheet
替换为您要访问的Google Sheets的名称。
这样,您就可以在python-social-auth中使用gspread库来实现与Google Sheets的集成。请注意,此示例假设您正在使用Django框架,但您可以根据自己的项目需求进行相应的修改。
领取专属 10元无门槛券
手把手带您无忧上云