我有应用程序的反应,从那里我正在验证谷歌用户
并返回access_token
,我将该访问令牌传递给rails API。
现在我在轨道上使用get google contacts下面的代码。
contacts_josn = JSON.parse(open("https://www.google.com/m8/feeds/contacts/default/full?access_token="+params[:access_token]+"&alt=json").read)
但它给我的错误
#<OpenURI::HTTPError: 401 Token invalid - AuthSub token has wrong scope>
更新: 建议的答案与我的问题不同,我使用的是谷歌联系人API。
任何建议都将受到赞赏:)
答案 0 :(得分:0)
我解决了问题,这是access_token
中的范围问题当我从react生成access_token时,我没有给出任何范围。从后端我使用access_token来获取联系人
所以我做的是
In react
<GoogleLogin
className="pull-right btn btn-orange add-new-btn"
clientId={process.env.REACT_APP_GOOGLE_CLIENT_ID}
scope="email https://www.google.com/m8/feeds/"
buttonText="Import google contacts"
onSuccess={this.responseGoogle}
onFailure={this.responseGoogle}
>
为电子邮件访问添加了范围email
,为管理联系人添加了https://www.google.com/m8/feeds/
。
在Rails一侧
contacts_josn = JSON.parse(open("https://www.google.com/m8/feeds/contacts/default/full?max-results=50&alt=json", "Authorization" => "Bearer #{params[:access_token]}", "GData-Version" => "3.0").read)
现在这将返回联系人列表。