Javascript 在Google Contacts API 3.0版上使用oauth2检索刷新令牌
我正在使用oauth2(node.js和库)连接到 这样做,我得到的回应如下:Javascript 在Google Contacts API 3.0版上使用oauth2检索刷新令牌,javascript,node.js,google-api,oauth-2.0,google-contacts-api,Javascript,Node.js,Google Api,Oauth 2.0,Google Contacts Api,我正在使用oauth2(node.js和库)连接到 这样做,我得到的回应如下: { access_token : "...", "token_typen": "Bearer", "expires_in" : 3600, "id_token": "..." } 我缺少用于在新访问令牌过期后立即获取新访问令牌的刷新令牌 oauth2的选项 { host: 'accounts.google.com', port: 443, path: '/o/oauth2/token', method:
{ access_token : "...",
"token_typen": "Bearer",
"expires_in" : 3600,
"id_token": "..." }
我缺少用于在新访问令牌过期后立即获取新访问令牌的刷新令牌
oauth2的选项
{ host: 'accounts.google.com',
port: 443,
path: '/o/oauth2/token',
method: 'POST',
headers:
{ 'Content-Type': 'application/x-www-form-urlencoded',
Host: 'accounts.google.com',
'Content-Length': 247 } }
柱体
'重定向\u uri=http%3A%2F%2Flocalhost%2fouth2Callback&grant\u type=authorization\u code&client\u id=CLIENTID&client\u secret=CLIENTSECRET&type=web\u server&code=4%2F3gbiESZTEOjiyFPLUhKfE\u jr8Q'
注意:我试图将approval\u prompt=force从添加到request-post\u正文中,但这导致了一个错误
{ statusCode: 400, data: '{\n "error" : "invalid_request"\n}' }
注意:我试图将类似问题中的approval\u prompt=force添加到request-post\u正文中,但这导致了一个错误
当您请求令牌时,不需要approval\u提示符
param。*approval\u prompt*参数用于授权部分
我缺少刷新令牌 无法获得*刷新令牌*的唯一方法是:
- 使用流程
- 在授权码请求中包括
access\u type=offline
添加到授权码请求中
编辑:
i、 e:
如果您得到的400
是因为您添加了无效参数或缺少一个参数
祝你好运 有一次我这样做是在测试——我已经从应用程序中删除了谷歌授权令牌——所以它尝试获取另一个,但没有刷新令牌
因此,请检查您正在测试的应用程序是否未被授权用于您正在测试的帐户(这有意义吗?谢谢您的回答。不幸的是,这也不起作用。我得到一个错误:{statusCode:400,数据:{“error”:“invalid_request”}}。谷歌只会给你一次刷新令牌。在初始身份验证之后,您将只获得访问令牌。如果您(或您的用户)通过从头访问并启动身份验证序列来删除访问权限,则可以获得新的刷新令牌。
https://accounts.google.com/o/oauth2/auth?client_id=**your_client_id**&scope=https://www.googleapis.com/auth/plus.me&redirect_uri=http://localhost&response_type=code&access_type=offline