def weibo_history(request): import time username = request.GET.get('username') user = Profile.get_by_username(username=username) access_token = user.access_token client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) client.set_access_token(access_token, expires_in=time.time() + 10000) user_timeline = client.get.statuses__user_timeline(access_token=access_token, uid=user.sns_id) data = user_timeline['statuses'] data = [d['text'] for d in data] return HttpResponse( '\n'.join(data) )
def weibo_logout(request): username = request.GET.get('username', '') if not username: return HttpResponse(to_json(ret=401)) user = Profile.get_by_username(username) if not user: return HttpResponse(to_json(ret=500)) client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) access_token = user.access_token expires_in = user.expires_in client.set_access_token(access_token, expires_in) client.get.account__end_session() user.logout() return HttpResponse(to_json(ret=200))
def weibo_callback(request): code = request.GET.get('code') client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) r = client.request_access_token(code=code) access_token = r.access_token expires_in = r.expires_in client.set_access_token(access_token, expires_in) user_data = client.get.users__show(uid=r.uid, access_token=access_token) username = user_data['name'] user_id = user_data['id'] description = user_data['description'] avatar_large = user_data['avatar_large'] user_timeline = client.get.statuses__user_timeline(access_token=access_token, uid=r.uid) weibo_history = [d['text'] for d in user_timeline['statuses']] user = Profile.create_or_get_user(username=username, password='', access_token=access_token, centroid=[10, 10], sns_id=user_id, description=description, avatar=avatar_large, expires_in=expires_in, weibo_history=weibo_history) return HttpResponse(to_json(username=user.username, user_id=user.sns_id, description=user.description, avatar_large=user.avatar))