كيفية تسجيل الدخول التلقائي إلى تغذية ذرة Gmail مع Python؟

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

سؤال

Gmail لديه هذا الشيء الجميل يحدث للحصول على تغذية ذرة:

def gmail_url(user, pwd):
    return "https://"+str(user)+":"+str(pwd)+"@gmail.google.com/gmail/feed/atom"

الآن عندما تقوم بذلك في متصفح ، فإنه يدققك وإعادة توجيهك. لكن في بيثون ، على الأقل ما أحاول ، لا يعمل بشكل صحيح.

url = gmail_url(settings.USER, settings.PASS)
print url
opener = urllib.FancyURLopener()
f = opener.open(url)
print f.read()

بدلاً من إعادة التوجيه بشكل صحيح ، يقوم بذلك:

>>> 
https://user:pass@gmail.google.com/gmail/feed/atom
Enter username for New mail feed at mail.google.com: 

هذا سيء! لا يجب أن أكتب في اسم المستخدم وكلمة المرور مرة أخرى !! كيف يمكنني أن أجعلها مجرد فائدة تلقائية في Python كما هو الحال في متصفح الويب الخاص بي ، حتى أتمكن من الحصول على محتويات التغذية بدون كل BS؟

هل كانت مفيدة؟

المحلول

يمكنك استخدام httpbasicauthhandler ، جربت ما يلي وعملت:

import urllib2

def get_unread_msgs(user, passwd):
    auth_handler = urllib2.HTTPBasicAuthHandler()
    auth_handler.add_password(
        realm='New mail feed',
        uri='https://mail.google.com',
        user='%s@gmail.com' % user,
        passwd=passwd
    )
    opener = urllib2.build_opener(auth_handler)
    urllib2.install_opener(opener)
    feed = urllib2.urlopen('https://mail.google.com/mail/feed/atom')
    return feed.read()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top