Search code examples
oauth-2.0imapgmail-imapsasl

Error code 400 on generating OAuth 2 SASL string


I have generated the following SASL string FOR OAuth 2:

[email protected]^Aauth=Bearer ya29.AHES6ZTtYOu0NR0vAYbrvKZNcHJPuZEpr4Hk3W3dXcXFQ88^A^A

Then i encoded it and sent the encoded string like this:

MSB AUTHENTICATE XOAUTH2 encoded string

But i get error response as:

{"status":"400","schemes":"Bearer","scope":"https://mail.google.com/"}

What does this error mean and how can i correct it?


Solution

  • I finally figured it out. In my case, the Gmail scope("https://mail.google.com/") was missing, from the token generation process. It works fine now.

    EDIT:

    (Including comment from @ohmyfromage:)

    When you call generateAuthUrl, you need to pass an object with an array scope of strings as the scopes, and one of those strings is "https://mail.google.com/"