Gmail API OAuth错误:此邮件类型不允许使用参数:redirect_uri

时间:2018-02-21 18:05:41

标签: google-oauth gmail-api

Gmail OAuth API一直运行良好,直到2月17日,POST /o/oauth2/token在刷新OAuth令牌时随机返回此错误:

  

此消息类型不允许使用参数:redirect_uri

错误大约发生在10次中。奇怪的是,在收到此错误后,下一个完全相同的请求成功。因此,这与错误消息建议的“redirect_uri”无关。

“此消息类型不允许参数”已在其他StackOverflow帖子中报告,但它们都是持久性错误,可以通过修复参数来解决。虽然我们得到的错误是暂时的。 10%的费率对用户体验来说代价很高。

最近有没有人见过类似的行为?

2 个答案:

答案 0 :(得分:5)

Google似乎最近更改了从刷新令牌获取新访问令牌的网址。旧网址为https://accounts.google.com/o/oauth2/token,新网址为https://www.googleapis.com/oauth2/v4/token

我还记得redirect_uri以前是获取新访问令牌的参数之一,但它似乎不再存在:https://developers.google.com/identity/protocols/OAuth2WebServer#offline。只需看看HTTP / REST示例。

即使使用较旧的网址,只删除redirect_uri也可能有效,但我认为更改网址并删除redirect_uri是明智之举。

答案 1 :(得分:0)

我无法在上面添加评论,但我们也一直看到类似的问题,因为oauth的间歇性失败。

删除“redirect_uri”有效,但这让我感到紧张,因为文档https://developers.google.com/identity/protocols/OAuth2WebServer说要包含它。

但是,允许我们保留“redirect_uri”的工作正在将我们的网址从https://accounts.google.com/o/oauth2/token更新为https://www.googleapis.com/oauth2/v4/token