¿Iniciar programación programada en Yahoo/MSN (Hotmail) usando el código Python Django y obtener la lista de contactos?

StackOverflow https://stackoverflow.com/questions/3904929

  •  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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top