¿Iniciar programación programada en Yahoo/MSN (Hotmail) usando el código Python Django y obtener la lista de contactos?
-
29-09-2019 - |
Pregunta
¿Hay alguna forma de iniciar sesión programáticamente en Yahoo!, Proporcionando ID de correo electrónico y contraseña como entradas, y obtener los contactos del usuario?
He logrado lo mismo con Gmail, usando beautifulsoup.py
La API de la libreta de direcciones de Yahoo proporciona BBAuth, que requiere que el usuario sea redirigido a la página de inicio de sesión de Yahoo. Pero estoy buscando una forma de autenticar al usuario con Yahoo sin la redirección. He intentado esto:http://pypi.python.org/pypi/contactgrabber/0.1
Pero recibo este error:
ADVERTENCIA (del módulo de advertencias): archivo "C: Python26 lib Site-Packages ContactGrabber-0.1-Py2.6.Egg ContactGrabber Base.py", Línea 31
Runtimewarning: Tempnam es un riesgo de seguridad potencial para su programa
INVALIDO DE UMERIDADO/PASSACIÓN
Excepción WindowsRor: (2, 'El sistema no puede encontrar el archivo especificado', 'c: docume ~ 1 sjain locals ~ 1 temp 2') en> ignorado
Solución
Resolví este problema usando urllib aquí está el código:
Loginurl = "https://login.yahoo.com/config/login?" ExportUrl = "http://address.yahoo.com/"
Def import_yahoo_contacts (inicio de sesión, 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
Esto realmente funciona para mí :)
Otros consejos
Podrías escribir uno o simplemente usar Pinax. Pinax es una colección de herramientas construidas sobre Django. Tienen una aplicación que importa contactar a la FMIFO (de VCard, Google o Yahoo).
Le sugiero que use esto, ya que no tiene que mantenerlo además para evitar reinventar el ciclo.