2011-09-21 39 views
5

Tôi đang cố sử dụng Mã thông báo OAuth tôi nhận được từ django-social-auth để truy cập lịch của người dùng.Sử dụng Mã thông báo truy cập OAuth từ django-social-auth bằng dữ liệu Google api (lịch)

Vì vậy, trong cấu hình django-xã hội-auth tôi đặt:

GOOGLE_CONSUMER_KEY = 'anonymous' 
GOOGLE_CONSUMER_SECRET = 'anonymous' 
GOOGLE_OAUTH_EXTRA_SCOPE = ['https://www.google.com/calendar/feeds/'] 

Khi người dùng quay trở lại từ google, tôi nhận được một mục trong cơ sở dữ liệu mà lookes như thế này:

{u'access_token': u'oauth_token_secret=vvvv&oauth_token=xxxx'} 

Nhưng bây giờ, khi tôi thử làm một việc như sau:

import gdata.calendar.client 

client = gdata.calendar.client.CalendarClient() 
client.auth_token = gdata.gauth.OAuthHmacToken('anonymous', 'anonymous', 'xxxx', 'vvvv', gdata.gauth.ACCESS_TOKEN) 

client.GetOwnCalendarsFeed() 

Tôi luôn nhận được:

gdata.client.Unauthorized: Unauthorized - Server responded with: 401 
<HEAD> 
<TITLE>Token invalid - Invalid AuthSub token.</TITLE> 
</HEAD> 

Tôi thiếu gì ở đây?

+1

Bạn đang sử dụng OAuth hoặc OAuth2? –

+0

Tôi có cùng một vấn đề. Lái xe cho tôi. Tôi đang sử dụng OAuth và đã thử với các khóa ẩn danh cũng như đã đăng ký. – Tony

Trả lời

0

Hallelujah! Django-social-auth trả về mã thông báo truy cập với dấu gạch chéo được thoát (% 2F). Thay thế bằng "/" đã làm việc cho tôi.

HTH

3

này làm việc cho tôi:

from social_auth.models import UserSocialAuth 

def do_something_with_tokens(request): 
    tokens = UserSocialAuth.get_social_auth_for_user(request.user).get().tokens 
    ... 
+0

trong mã thông báo trường hợp của tôi chỉ trống. không chắc chắn lý do tại sao.... – CIF

Các vấn đề liên quan