【发布时间】:2018-02-27 02:00:50
【问题描述】:
以下代码使用 Google oauth2 机制来登录用户。我们需要在用户离线时处理用户日历的更新,因此我们最终需要“刷新令牌”。 grantOfflineAccess() 的结果是否返回刷新令牌(在下面,我可以看到 response.code 包含一个可能是刷新令牌的值)?
如何获取可用于(服务器端)的刷新令牌来创建新的访问密钥,以便离线访问用户的 Google 日历?
<script type="text/javascript">
function handleClientLoad() {
gapi.load('client:auth2', initClient);
}
function initClient() {
gapi.client.init({
apiKey: 'MY_API_KEY',
clientId: 'MY_CLIENT_ID.apps.googleusercontent.com',
discoveryDocs: ['https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest'],
scope: 'https://www.googleapis.com/auth/calendar'
}).then(function () {
var GoogleAuth = gapi.auth2.getAuthInstance();
GoogleAuth.signIn();
GoogleAuth.grantOfflineAccess().then(function (response) {
var refresh_token = response.code;
});
});
}
</script>
<script async defer src="https://apis.google.com/js/api.js"
onload="this.onload=function(){};handleClientLoad()"
onreadystatechange="if (this.readyState === 'complete') this.onload()">
</script>
【问题讨论】:
标签: oauth-2.0 google-api google-calendar-api google-oauth