有人可以告诉我为什么我不能使用相同的令牌从Google检索userInfo和日历列表?
我设置了正确的范围(我认为):
private static final String PLUS_ME_SCOPE = "https://www.googleapis.com/auth/plus.me";
private static final String USER_INFO_PROFILE_SCOPE = "https://www.googleapis.com/auth/userinfo.profile";
private static final String USER_INFO_EMAIL_SCOPE = "https://www.googleapis.com/auth/userinfo.email";
private static final String GOOGLE_CALENDAR_SCOPE = "https://www.googleapis.com/auth/calendar";
要获取用户信息,请使用此网址:https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=,对于我使用的日历:https://www.googleapis.com/calendar/v3/users/me/calendarList?minAccessRole=writer&key=。
在用户信息中,我获得了所有正确的信息但是对于日历,我得到错误401:需要登录。
这里有什么问题?
答案 0 :(得分:1)
更改
https://www.googleapis.com/calendar/v3/users/me/calendarList?minAccessRole=writer&key=
到
https://www.googleapis.com/calendar/v3/users/me/calendarList?minAccessRole=writer&access_token=
就这么简单;)
<强>更新强>
另请注意,不推荐指定access token as a query parameter:
由于与URI方法相关的安全漏洞(参见第5节),包括将记录包含访问令牌的URL的可能性很高,因此除非无法在其中传输访问令牌,否则不应使用它。 “授权”请求标头字段或HTTP请求实体。