使用oAuth和youtube进行身份验证时,总是会遇到错误:第二次尝试时出现invalid_grant,为什么?

Shi*_*zam 10 youtube google-api gdata

截至昨天,我的应用程序能够通过oAuth 2.0与google(youtube)进行身份验证,第一次没问题,但第二次(重新身份验证,相同的应用程序+同一用户),当我为accessToken交换requestToken时,我得到了一个错误:

error : invalid_grant
Run Code Online (Sandbox Code Playgroud)

我正在使用:

grant_type = authorization_code
Run Code Online (Sandbox Code Playgroud)

他们建议的.过去两天前发生的事情是重新验证,网页会说"您之前已使用此应用程序进行过身份验证,是否要再次授予其访问权限?".改变了什么或者我做错了什么?

Dwa*_*yne 10

我找到了解决这个问题的方法(至少对我们而言).重定向到accounts.google.com/o/oauth2/auth网址时,我们必须同时添加approval_prompt = force和access_type = offline.如果缺少一个,我们没有刷新令牌.

此网址记录了所有参数,但没有提及刷新令牌:http: //code.google.com/apis/accounts/docs/OAuth2WebServer.html