#python #oauth-2.0 #gmail
#python #oauth-2.0 #gmail
Вопрос:
Мое требование заключается в использовании python, мы хотим добавить изображение в качестве подписи Gmail. как только изображение нажато, мы хотим перенаправить на видеофайл.
Я попробовал это вручную и успешно добавил подпись, выполнив следующие шаги:
- Откройте документы Google и загрузите изображение
- Добавлена гиперссылка на изображение
- Теперь скопировал изображение в раздел подписи Gmail
- Как только я нажимаю на изображение, оно успешно перенаправляется в видеофайл.
Используя python, я хочу добиться этого динамическим способом
- Я создал учетные данные Google Диска
- Включен API документов Google
- Возможность чтения данных документов
- Теперь я застрял, как добавить текст в качестве подписи.
Я пытаюсь использовать следующий подход
SCOPES = ['https://www.googleapis.com/auth/gmail.settings.basic','https://www.googleapis.c om/auth/gmail.labels','https://www.googleapis.com/auth/gmail.send']
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', SCOPES)
GMAIL = discovery.build('gmail', 'v1', http=creds.authorize(Http()))
addresses = GMAIL.users().settings().sendAs().list(userId='me',
fields='sendAs(isPrimary,sendAsEmail)').execute().get('sendAs')
for address in addresses:
if address.get('isPrimary'):
break
rsp = GMAIL.users().settings().sendAs().patch(userId='me',
sendAsEmail=address['sendAsEmail'], body=DATA).execute()
print("Signature changed to '%s'" % rsp['signature'])
Я получаю ошибку
«код»: 401, «сообщение»: «В запросе отсутствуют необходимые учетные данные для аутентификации. Ожидаемый токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации
Пожалуйста, предложите дальнейший путь
Спасибо, Виджай
Комментарии:
1. Я чувствую, что вам следует вернуться немного назад. Какую библиотеку вы используете для автоматизации / отправки электронной почты? Из вашего описания singnature — это не что иное, как
<img>
тег сhref
в html. определенно проще установить подпись из исходного кода html2. Это хорошая идея добавления через HTML-теги. в настоящее время я не использую какую-либо библиотеку. можете ли вы предложить какую-нибудь библиотеку, использующую javascript или Python, для добавления изображения в качестве подписи Gmail
3. Является ли это частью приложений Google, где вы хотите изменить подпись всех пользователей или просто ищете свою собственную?
4. Это не часть приложений Google, мы пытаемся справиться с этим с помощью Python
5. Я обновил код, не могли бы вы, пожалуйста, рассказать, как его продвинуть
Ответ №1:
Наконец-то понял
SCOPES = 'https://www.googleapis.com/auth/gmail.settings.basic'
store = file.Storage('credentials.json')
creds =None
args.noauth_local_webserver = True
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
creds = tools.run_flow(flow, store,args)
GMAIL = discovery.build('gmail', 'v1', http=creds.authorize(Http()))
addresses = GMAIL.users().settings().sendAs().list(userId='me',
fields='sendAs(isPrimary,sendAsEmail)').execute().get('sendAs')
for address in addresses:
if address.get('isPrimary'):
break
signature = {'signature':'<img src="http://myserver/mycard.JPG" alt="Trulli"
width="200" height="200">'}
rsp = GMAIL.users().settings().sendAs().patch(userId='me',
sendAsEmail=address['sendAsEmail'], body=signature).execute()
print("Signature changed to '%s'" % rsp['signature'])