【问题标题】:Refresh Google drive access__token刷新 Google 云端硬盘 access_token
【发布时间】:2017-08-06 12:40:03
【问题描述】:

我将 Google 云端硬盘集成到我的应用中。并且希望每次在连接的驱动器帐户中发生更改时接收推送通知/webhook。 access_token 在驱动器帐户连接后一小时后过期,之后我无法收到任何 webhook。 如何刷新它并自动刷新?

【问题讨论】:

    标签: python google-drive-api webhooks


    【解决方案1】:

    您可以使用刷新令牌。访问令牌可以通过刷新令牌进行更新。可以按如下方式检索此刷新令牌。首先,获取refreshtoken需要以下信息。

    • 客户 ID
    • 客户端密码
    • 重定向 URI
    • 范围

    从您的问题来看,您似乎已经拥有一个访问令牌。所以我认为你有以上信息。

    接下来,使用上述信息,它检索您的应用程序可用于获取访问令牌的授权代码。请制作如下的URL,放到您的浏览器中,点击授权。我总是使用此 URL 检索代码并检索刷新令牌。可以通过包含 access_type=offline 来检索刷新令牌。

    https://accounts.google.com/o/oauth2/auth?
    response_type=code&
    approval_prompt=force&
    access_type=offline&
    client_id=### your_client_ID ###&
    redirect_uri=### edirect_uri ###&
    scope=### scopes ###
    

    授权码显示在浏览器上或作为 URL。您可以使用代码检索刷新令牌。

    以下 2 个示例是 python 脚本。

    检索刷新令牌:

    import requests
    r = requests.post(
        'https://accounts.google.com/o/oauth2/token',
        headers={'content-type': 'application/x-www-form-urlencoded'},
        data={
            'grant_type': 'authorization_code',
            'client_id': '#####',
            'client_secret': '#####',
            'redirect_uri': '#####',
            'code': '#####',
        }
    )
    

    使用刷新令牌检索访问令牌:

    import requests
    r = requests.post(
        'https://www.googleapis.com/oauth2/v4/token',
        headers={'content-type': 'application/x-www-form-urlencoded'},
        data={
            'grant_type': 'refresh_token',
            'client_id': '#####',
            'client_secret': '#####',
            'refresh_token': '#####',
        }
    )
    

    您可以在此处查看详细信息。 https://developers.google.com/identity/protocols/OAuth2WebServer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      相关资源
      最近更新 更多