def get(self, template_name='templates/authdouban/complete.html'): request_key = self.request.get('oauth_token') account = DoubanAccount.all().filter('request_key = ', request_key).get() if not account or account.request_key == 'ALREADY_AUTHENTICATED': reason = urllib.quote_plus('Request Key 不正确') return self.redirect('/account/douban/authorize/failure/?reason=%s' % reason) service = douban_service() key, secret, douban_id = service.client.get_access_token(account.request_key, account.request_secret) if key and secret and douban_id: account.set_access_key(key, secret, douban_id) account.remove_duplicate_accounts() account.remove_old_accounts() if settings.STORE_DOUBAN_PROFILE: entry = service.GetPeople('/people/%s' % douban_id) profile = DoubanProfile.insert_or_update(entry) return render_to_response(self, template_name, { 'douban_account': account }) else: reason = urllib.quote_plus('获取 Access Key 失败') return self.redirect('/account/douban/authorize/failure/?reason=%s' % reason)