当您的浏览器将用户重定向到Google的oAuth页面时,您是否要通过令牌响应将您希望Google服务器返回的重定向URI作为参数传递?在控制台中设置重定向URI并不是一种告诉Google尝试登录时该去哪里的方法,而是一种告诉Google允许的重定向URI是什么的方法(因此,如果其他人与您的客户端一起编写了一个Web应用,
ID,但不允许使用其他重定向URI);您的Web应用程序应在有人单击“登录”按钮时将浏览器发送至:
https://accounts.google.com/o/oauth2/auth?client_id=XXXXX&redirect_uri=http://localhost:8080/WEBAPP/youtube-callback.html&response_type=pre&scope=https://www.googleapis.com/auth/youtube.upload
(作为参数传递的回调URI必须经过url编码,顺便说一句)。
当Google的服务器获得用户的授权后,它将把浏览器重定向到您以身份发送的任何内容
redirect_uri。它将在请求中包含令牌作为参数,因此您的回调页面可以随后验证令牌,获取访问令牌,然后继续进行应用的其他部分。
如果您访问:
http://pre.google.com/p/google-api-java-
client/wiki/OAuth2#Authorization_Code_Flow
您可以在那里看到更好的Java客户端示例,这表明您必须重写
getRedirectUri方法以指定回调路径,因此不使用默认值。
重定向URIs存在于
client_secrets.json文件中的原因有很多……其中一个重要原因是,oAuth流可以验证您的应用程序指定的重定向是否与您的应用程序所允许的匹配。
如果您访问https://developers.google.com/api-client-
library/java/apis/youtube/v3,则可以直接基于控制台中的应用为自己生成示例应用,在该应用中(再次)
getRedirectUri方法被覆盖以使用您的特定回调。



