Код я немного переписал и, кажется, даже получилось локализовать место одной из ошибок:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from django.shortcuts import render_to_response, redirect
import tweepy
CONSUMER_KEY = 'QQNHQPSoOSWzBwNWMu4G2w'
CONSUMER_SECRET = 'B97Fnf7Cf8qfU15WyP1TmTnKVBDAtBH8UGUbGgPWe0'
CALLBACK_URL = 'http://127.0.0.1:8000/'
def hello(request):
return HttpResponse('Hello!')
def auth(request):
# процесс авторизации
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET, CALLBACK_URL)
try:
auth_url = auth.get_authorization_url()
except tweepy.TweepError:
return HttpResponse('Error! Failed to get request token.')
request.session['request_token'] = (auth.request_token.key, auth.request_token.secret)
return redirect(auth_url)
verifier = request.GET.get('oauth_verifier')
token = request.session.get('request_token')
del request.session["request_token"]
auth.set_request_token(token[0], token[1])
try:
auth.get_access_token(verifier)
except tweepy.TweepError:
print 'Error! Failed to get access token.'
request.session['access_token'] = (auth.access_token.key, auth.access_token.secret)
def main(request):
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token('access_token', 400001)
api = tweepy.API(auth)
# Если раскомментировать следующую строку, то появляется ошибка "argument 2 to map() must support iteration". Какой ещё вообще map()?
# user = api.get_user('4umak')
# tweet_count = user.statuses_count
tweet_count = request.session.get('access_token')
return render_to_response('main.html', locals())
Вот тут:
auth.get_access_token(verifier)
как мне кажется, он ничего не получает. Потому что потом в сессию ‘access_token’ ничего не записывается и при проверке оно выводит только None. Почему так - лично я никак понять не могу. Судя по документации, делать нужно именно так.
И ещё, что всё-таки за ошибка такая “argument 2 to map() must support iteration”(см. комментарии в представлении main)? Причины её появления я тоже как-то не очень прослеживаю…
Может у кого-нибудь найдётся какая-нибудь дельная мысль?:)