예제 #1
0
파일: views.py 프로젝트: Shuriken13/SOASina
def index(request):
    code = request.GET.get('code', '')
    if code == '':
        return HttpResponseRedirect('/login/')
    user = User.objects.filter(code=code)
    client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET,
                       redirect_uri=CALLBACK_URL)
    if user.count() != 0:
        user = user[0]
    else:
        r = client.request_access_token(code)
        dbuser = User.objects.filter(uid=r.uid)
        if dbuser.count() == 0:
            user = User(uid=r.uid, access_token=r.access_token,
                        expires_in=r.expires_in, code=code)
            user.save()
        else:
            user = dbuser[0]
            user.code, user.access_token, user.expires_in, = code, r.access_token, r.expires_in
            user.save()

    access_token = user.access_token  # 新浪返回的token,类似abc123xyz456
    # token过期的UNIX时间:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4
    expires_in = user.expires_in
    client.set_access_token(access_token, expires_in)
    print "login:", user.uid, access_token, expires_in
    # print client.statuses.user_timeline.get()
    # print client.statuses.update.post(status=u'测试OAuth 2.0发微博')
    # print client.statuses.upload.post(status=u'测试OAuth 2.0带图片发微博',
    # pic=open('/Users/michael/test.png'))
    template = loader.get_template('main/index.html')
    # screen_name = client.users.show.get(uid=user.uid)['screen_name']
    screen_name = user.uid
    return HttpResponse(template.render({'screen_name':screen_name}))