【问题标题】:Google API Offline Access To User DataGoogle API 离线访问用户数据
【发布时间】:2017-03-04 10:20:11
【问题描述】:

我正在开发一个需要访问用户 Google 日历的权限的应用程序。我正在使用 PHP 客户端,并且能够离线访问这些日历。我的问题如下:获得许可后,如何在以后访问特定用户的日历?如何在需要时为特定用户(已授予我访问其日历的权限)创建客户端对象?

我已经成功地使用Google_Service_Oauth2::USERINFO_EMAIL 范围提取了一个客户端 ID,但是我以后如何使用它来获取该用户的日历?这就是我应该做的还是我走错了方向?

【问题讨论】:

    标签: google-api google-api-php-client


    【解决方案1】:

    您可以采取多种方法来实现这一目标。在您的情况下,由于您只想访问用户日历,因此您应该在请求中包含的范围是指定的here。您的客户端配置应该有$client->setAccessType("offline"); 和$client->setApprovalPrompt("force");

    允许访问后,您将收到一个访问代码,您可以用该代码交换访问令牌。返回的访问令牌是您需要保存在数据库中的令牌。稍后,如果用户需要使用日历服务,您只需使用已保存的访问令牌即可。

    如果您需要代码细节,请发布代码细节,因为如果不查看您的实现,我们无法完全理解您想要实现的目标。

    以下面的代码sn-p为例。

    /*
     * @$accessToken - json encoded array (access token saved to database)
    */
    
    $client = new Google_Client();
    $client->setAuthConfig("client_secret.json");
    $client->addScope("https://www.googleapis.com/auth/calendar");
    
    $_SESSION["access_token"] = json_decode($accessToken, true);
    
    $client->setAccessToken($_SESSION['access_token']);
    $service = new Google_Service_Calendar($client);
    
    //REST OF THE PROCESS HERE
    

    【讨论】:

    • 嗨@Morfinismo,感谢您的帮助!您能否展示一个代码示例,说明我如何使用令牌稍后访问用户日历?我似乎无法弄清楚。
    • @Cellydy 我已经更新了答案。请帮助我帮助你。请向我们展示您在做什么,以便我们更好地帮助您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2017-09-19
    • 2020-07-01
    • 2016-04-29
    • 1970-01-01
    • 2021-04-12
    相关资源
    最近更新 更多