2010-05-14 4 views
3

Я хочу использовать API Twitter в Python для поиска идентификаторов пользователей из имени с помощью метода поиска. Я сделал аналогичные запросы, просто используяAPI Twitter с urllib2 в python

response = urllib2.urlopen('http://search.twitter.com...') 

, но для этого мне нужна аутентификация. Я не думаю, что могу это сделать через API-интерфейс Google python twitter, потому что у него нет метода поиска. Любые идеи, как я могу работать с urllib2 ??

ответ

3

Используйте urllib2.Request, чтобы определить полный HTTP заголовок:

request = urllib2.Request('http://twitter.com/...') 
request.add_header('Authorization', 'Basic ' + base64.b64encode(username + ':' + password)) 
response = urllib2.urlopen(request) 

Примечание однако что базовое разрешение будет отключено в ближайшее время в твиттере, и вам нужно будет перейти на OAuth. Twitter API Wiki имеет несколько примеров.

1

Использование Twython библиотеки, это код для поиска идентификаторов пользователей по имени:

from twython import Twython 
twitter = Twython(APP_KEY, APP_SECRET,OAUTH_TOKEN, OAUTH_TOKEN_SECRET) 
print twitter.show_user(screen_name=USER_NAME)["id"] 

Я надеюсь, что это помогает.

0

Аутентификация может быть выполнена с использованием различных библиотек обложек API Twitter. Полный список API-интерфейса обертки указан в Twitter Developer Page.

Независимо от библиотеки, вам придется реализовать аутентификацию OAuth. Это пример кода с использованием Python Twitter Tool.

from twitter import * 

MY_TWITTER_CREDS = os.path.expanduser('~/.my_app_credentials') 
if not os.path.exists(MY_TWITTER_CREDS): 
    oauth_dance("My App Name", CONSUMER_KEY, CONSUMER_SECRET, 
       MY_TWITTER_CREDS) 

oauth_token, oauth_secret = read_token_file(MY_TWITTER_CREDS) 

twitter = Twitter(auth=OAuth(
    oauth_token, oauth_secret, CONSUMER_KEY, CONSUMER_SECRET)) 

# Now search with Twitter 
rel = t.search.tweets(q='whatever')['statuses'] 
# Now do whatever you want with rel object 
Смежные вопросы