#go #gmail-api
#Вперед #gmail-api
Вопрос:
Следуя приведенным здесь инструкциям Go Quickstart, включил API Gmail, загрузил конфигурацию клиента и затем выполнил quickstart.go. В следующей строке показано, что запрашивается GmailSendScope.
config, err := google.ConfigFromJSON(b, gmail.GmailSendScope)
Следуйте остальным инструкциям. При сохранении token.json программа отобразила следующее сообщение:
Saving credential file to: token.json
2020/10/07 12:36:13 Unable to retrieve labels: googleapi: Error 403: Request had
insufficient authentication scopes.
More details:
Reason: insufficientPermissions, Message: Insufficient Permission
На консоли разработчика я вижу клиент Oauth типа Desktop для проекта Quickstart, и на экране безопасности было показано, что я разрешаю приложению отправлять электронные письма с использованием моей учетной записи gmail.
Я не уверен, как исправить эту проблему.
macOS Catalina 10.15.7, go1.15.2 darwin / amd64
Спасибо за помощь!!!
Комментарии:
1. Могу ли я спросить вас о разнице между вашим текущим сценарием и сценарием quickstart ?
2. Единственное отличие — это строка, которую я перечислил выше. Оригинальный скрипт имеет gmail.GmailReadonlyScope. Программа работала с этой областью. Но мне нужно отправлять электронные письма, поэтому я изменил область на gmail.GmailSendScope и токен. файл json не может быть сохранен. Я удалил токен. файл json для ReadonlyScope перед запуском скрипта для GmailSendScope, как предложено в скрипте.
3. Спасибо за ответ. В вашем случае, когда
gmail.MailGoogleComScope
используется вместоgmail.GmailSendScope
, какой результат вы получите? В данном случаеgmail.MailGoogleComScope
этоhttps://mail.google.com/
. Кстати, при изменении областей, пожалуйста, удалитеtoken.json
и повторно авторизуйте области снова. Пожалуйста, будьте осторожны с этим.4. Да, это сделало это. Большое вам спасибо, я потратил на это много часов. Следующий шаг — фактически отправить электронное письмо. Еще раз спасибо!!!
Ответ №1:
Спасибо Tanaike. Использование gmail.MailGoogleComScope
решило проблему!