【问题标题】:How to use Google Contacts API in meteor?如何在流星中使用 Google 联系人 API?
【发布时间】:2015-06-21 12:24:49
【问题描述】:
【问题讨论】:
标签:
meteor
access-token
google-contacts-api
【解决方案1】:
为处理 accessToken 的过期问题,您需要从 Google 获取 refreshToken。使用此 refreshToken,您可以在必要时通过对 Google API 的简单 HTTP POST 获取新的 accessToken。 Here 是来自 Google 的相关文档。要获取refreshToken,您需要请求离线访问,并且可能还需要强制提示批准,详见SO post。
forceApprovalPrompt: {google: true},
requestOfflineToken: {google: true},
我建议使用 Meteor 的 HTTP package 实现上述所有目标。所有的工具都在那里。你可能已经想通了:
var result = HTTP.post(
"https://www.googleapis.com/oauth2/v3/token",
{
params: {
'client_id': config.clientId,
'client_secret': config.secret,
'refresh_token': user.services.google.refreshToken,
'grant_type': 'refresh_token'
}
});
//Do some error checking here
var newAccessToken = result.data.access_token;
-
refresh_token - 授权返回的刷新令牌
代码交换。
-
client_id - 从
开发者控制台。
-
client_secret - 从
开发者控制台。
-
grant_type - 在 OAuth 2.0 中定义
规范,该字段必须包含 refresh_token 的值。
-
result.data 将是一个带有以下内容的 JSON 对象
{
"access_token":"1/fFBGRNJru1FQd44AzqT3Zg",
“expires_in”:3920,
"token_type":"承载者",
}
【解决方案2】:
看看这个包,它是一个为你自动刷新的小包装器:
here
实际上,我最终使用 oauth 处理程序构建了自己的身份验证流程,因为我需要摆脱链接到用户配置文件的令牌。