2010-10-11 3 views
0

Есть ли способ программно войти в Yahoo !, указав идентификатор и пароль электронной почты в качестве входных данных и получить контакты пользователя?программно входить в Yahoo/MSN (Hotmail) с помощью кода Django python и получить список контактов?

я достиг то же самое с Gmail, используя BeautifulSoup.py

Yahoo Адресная книга API предоставляет BBAuth, который требует, чтобы пользователь был перенаправлен на страницу входа Yahoo. Но я ищу способ аутентификации пользователя с Yahoo без перенаправления. Я попытался это: http://pypi.python.org/pypi/ContactGrabber/0.1

, но я получаю эту ошибку:

Warning (from warnings module): File "C:\Python26\lib\site-packages\contactgrabber-0.1-py2.6.egg\contactgrabber\base.py", line 31

RuntimeWarning: tempnam is a potential security risk to your program

Invalid UserID/Password

Exception WindowsError: (2, 'The system cannot find the file specified', 'C:\DOCUME~1\sjain\LOCALS~1\Temp\2') in > ignored

+0

Я один, задаваясь вопросом, стоит ли десенсибилизировать пользователей к идее сохранения своих учетных данных? – spender

ответ

0

Я решил эту проблему, используя URLLIB здесь код:

LoginUrl = «https: // Войти .yahoo.com/конфигурации/входа в систему?» ExportUrl = "http://address.yahoo.com/"

Защиту import_yahoo_contacts (Логин, PASSWD):

try : 
    form_data = {'login' : login, 'passwd' : passwd} 
    jar = cookielib.CookieJar() 
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar)) 
    form_data = urllib.urlencode(form_data) 
    resp = opener.open(LoginUrl, form_data) 
    resp = opener.open(ExportUrl) 
    page = resp.read() 

    index = page.find('InitialContacts') 
    startjson = page.index('[',index) 
    endjson = page.index(']',index) 
    Jsondata = page[startjson:endjson+1] 

    user_contacts = [] 
    data =json.JSONDecoder().decode(Jsondata) 
    for r in data: 
     userfriends = [] 
     userfriends.append(r.get('contactName')) 
     userfriends.append(r.get('email')) 
     user_contacts.append(userfriends) 

except: 
    return [] 
return user_contacts 

Это действительно работает для меня :)

0

Вы могли бы написать один или просто используйте Pinax. Pinax - это набор инструментов, построенных на Django. У них есть приложение, которое импортирует контакт imfo (из vCard, Google или Yahoo).

Я предлагаю вам использовать это, так как вам не нужно его поддерживать, чтобы избежать повторного цикла.

Смежные вопросы