Я пытаюсь использовать SwiftMailer для входа в учетную запись GMail, для которой у меня есть действительный токен доступа.Я могу успешно войти, используя учетные данные учетной записи:
$Transport = new Swift_SmtpTransport('smtp.gmail.com',587,'tls');
$Transport->setAuthMode('login')
->setUsername('my-email-address')
->setPassword('my-password');
$Mailer = new Swift_Mailer($Transport);
// ... make a new message & send it
Однако, если я изменю код для использования моего токена oauth2, например, так:
$access_token = 'ya29.GLv....';
$Transport = new Swift_SmtpTransport('smtp.gmail.com',587,'tls');
$Transport->setAuthMode('XOAUTH2')
->setUsername('my-email-address')
->setPassword($access_token);
$Mailer = new Swift_Mailer($Transport);
Я получу сообщение об ошибке: Swift_TransportException: Expected response code 250 but got code "535".... Username and Password are not accepted.
Я использую тот же токен доступа в другом месте с использованием API GMail, поэтому я знаю, что токен действителен.
Чего мне не хватает?
Редактировать
Просто снова запустил код с включенным отладчиком.Похоже, что первый выданный код ошибки - 334 с сообщением:
Expected response code 235 but got code "334", with message "334 eyJzdGF0dXMiOiI0MDAiLCJzY2hlbWVzIjoiQmVhcmVyIiwic2NvcGUiOiJodHRwczovL21haWwuZ29vZ2xlLmNvbS8ifQ==
Кодированная часть этого сообщения декодируется в:
{"status":"400","schemes":"Bearer","scope":"https://mail.google.com/"}