2015-06-01 7 views
0

Я использую python, чтобы создать способ отслеживать перспективы, с которыми я отправлял книги, но не слышал назад. Быстрый способ догнать их. Необходимо подчеркнуть, что это не используется для СПАМ.Не удалось выполнить проверку подлинности с помощью gspread для доступа к Google Диску

У меня есть один файл, который содержит gmail_variable.py gmail_username = «[email protected]» GMAIL_PASSWORD = «myGmailPassword»

Ниже использует эти данные для входа в Google Drive и отправить всех, кто еще не получил ко мне. Работа абсолютно прекрасна до сегодняшнего дня. Начал получать следующую ошибку. Я запускаю это из своего терминала и сохраняю код локально на своей машине.

Traceback (most recent call last): 
File "pr_email_robot.py", line 6, in <module> 
gc = gspread.login(GMAIL_USERNAME, GMAIL_PASSWORD) 
File "/Library/Python/2.7/site-packages/gspread/client.py", line 312, in login 
client.login() 
File "/Library/Python/2.7/site-packages/gspread/client.py", line 119, in login 
"Unable to authenticate. %s code" % ex.code) 
gspread.exceptions.AuthenticationError: Unable to authenticate. 404 code 

Ниже приведен код, который выполняется. Я знаю, что 20 апреля 20 апреля произошли изменения в соответствии с тем, что я прочитал. Но приведенный ниже код работал до тех пор.

После некоторых исследований я обнаружил, что gspread рекомендуем заменить

gc = gspread.login(GMAIL_USERNAME, GMAIL_PASSWORD) 

с

gc = gspread.authorize(OAuth2Credentials) 

Я тогда пошел через руководство here и настройка API, как они предложили. Загрузили файл JSON. НО что мне заменить OAuth2Credentials?

gc = gspread.authorize(OAuth2Credentials) 

Любые идеи или советы, которые получили высокую оценку. Тем не менее очень новый Python так просто объяснения полезны :)

import smtplib 
import gspread 

from gmail_variables import * 

gc = gspread.login(GMAIL_USERNAME, GMAIL_PASSWORD) 
wks = gc.open("horror_reviewers").sheet1 


recipients = wks.get_all_values() 

def sendEmail(recipient): 
    email_subject = "Jay-Jay" 
    #recipient = "[email protected]" 

    body_of_email = "<body><p>Hello "+ recipient[1].encode('utf-8') +",<br /> \ 
        <br /> \ 
        We spoke in the last few months X book.<br /> \ 
        <br /> \ 
        Have a note that we sent you a copy and confirmed a review. Did we send over what you needed or are you still awaiting details from us?</a><br /> \ 
        <br /> \ 
        Apologies if you have already posted the link and we missed it. If you could resend that would be great.<br /> \ 
        <br /> \ 
        </p></body>" 

    session = smtplib.SMTP('smtp.gmail.com', 587) 
    session.ehlo() 
    session.starttls() 
    session.login(GMAIL_USERNAME, GMAIL_PASSWORD) 

    headers = "\r\n".join(["from: " + GMAIL_USERNAME, 
          "subject: " + email_subject, 
          "to: " + recipient[0], 
          "mime-version: 1.0", 
          "content-type: text/html"]) 

    # body_of_email can be plaintext or html!      
    content = headers + "\r\n\r\n" + body_of_email 
    session.sendmail(GMAIL_USERNAME, recipient[0], content) 

[sendEmail(i) for i in recipients] 

ответ

0

Вы можете использовать SMTP для отправки почты с помощью Gmail:

пример кода:

import smtplib 
from email.mime.text import MIMEText 

hostname = "smtp.gmail.com" 
password = "<password>" 
me = "<[email protected]>" 
you = "<[email protected]>" 

payload = "some text here" 
msg = MIMEText(payload) 

msg["Subject"] = "Test subject" 
msg["From"] = me 
msg["To"] = you 

session = smtplib.SMTP_SSL(hostname) 
session.login(me, password) 
session.sendmail(me, [you], msg.as_string()) 
session.quit() 

Источник:

Принял идея отсюда: http://vi3k6i5.blogspot.in/2015/03/how-to-extract-email-ids-from-your.html

и код отсюда: http://www.reddit.com/r/Python/comments/15n6dw/sending_emails_through_python_and_gmail/

+0

Спасибо @VikashSingh, но он не интегрируется с Google Диском так же, как существующая система. – PatGW

+0

проверка использования gspread, будет включать это в код. –

+0

Можете ли вы попробовать эту ссылку и посмотреть, работает ли она для u: http://gspread.readthedocs.org/en/latest/oauth2.html –

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

  • Нет связанных вопросов^_^