如何从Google登录获取刷新令牌?

时间:2018-05-09 14:50:53

标签: google-calendar-api google-signin google-api-dotnet-client

我创建了一个原型,要求用户使用ASP.NET WebForms访问他们的Google日历。

这是我的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="GoogleSignInDemo.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <meta name="google-signin-scope" content="profile email">
    <meta name="google-signin-client_id" content="CLIENT_ID.apps.googleusercontent.com">
    <script src="https://apis.google.com/js/platform.js" async defer></script>
    <script src="Resources/jquery.js" ></script>
</head>
<body>
    <div class="g-signin2" data-theme="dark" onclick="onSignInCalendar()"></div>
    <script>
        function onSignInCalendar() {
            var auth2 = gapi.auth2.getAuthInstance();
            var options = new gapi.auth2.SigninOptionsBuilder(
                { 'scope': 'email https://www.googleapis.com/auth/calendar' });

            googleUser = auth2.currentUser.get();
            googleUser.grant(options).then(
                function (success) {
                    console.log(JSON.stringify({ message: "success", value: success }));
                    var accessToken = success.Zi.access_token;
                    var idToken = success.Zi.id_token;
                },
                function (fail) {
                    alert(JSON.stringify({ message: "fail", value: fail }));
                });
        }
    </script>
</body>
</html>

工作正常。但是,Google的回复仅包含access_tokenid_token。我在那里找不到refresh_token

任何人都知道如何获得它?

0 个答案:

没有答案