使用Java Servlet创建Google联系人时遇401 Unauthorized错误求助
问题原因及解决方法
核心原因:授权Scope不匹配
你获取access token时使用的scope是openid%20email,但调用Google People API创建联系人需要PeopleServiceScopes.CONTACTS(对应权限URL:https://www.googleapis.com/auth/contacts)权限。之前生成的access token没有包含该权限,因此API返回401 Unauthorized。
具体解决步骤
- 修改授权请求的scope参数:在跳转
https://accounts.google.com/o/oauth2/auth时,将scope值改为openid%20email%20https://www.googleapis.com/auth/contacts,确保包含联系人操作的权限。 - 重新获取授权码和access token:用更新后的scope重新走授权流程,拿到包含CONTACTS权限的新access token。
- 同步Flow的scope配置:确保
GoogleAuthorizationCodeFlow.Builder中设置的scope和授权请求的scope完全一致,避免后续加载Credential时出现权限不匹配问题。
内容的提问来源于stack exchange,提问作者stefano errani
相关产品推荐
相关产品推荐

