PHP Google API 客户端缓存访问 token

标签 php api caching google-analytics

我正在开发一个网络应用程序,该应用程序可以为技术不够强大的用户获取并显示谷歌分析数据。

为此,我:

1) 让用户使用 OAuth 登录

2)存储访问 token

3) 创建一个 Google_Client 并给它这个访问 token

4) 使用这个 Google_Client 来获取分析数据

这对第一个用户来说没有问题。但是,对于第二个用户,它会以“拒绝访问”响应而失败。通过 PHP 代码,我发现这是因为 Google API 客户端缓存了原始访问 token (在/var/tmp/google-api-php-client 的文件系统中),并使用这个而不是新访问我提供的 token 。

如何防止 Google API 客户端在文件系统中缓存访问 token ?

(有关 Google_Client 正在使用的缓存的背景信息:当您提供访问 token 时,它会将其与从 token 范围派生的 key 一起存储。由于访问 token 更改时范围保持不变,因此 Google_Client 不会创建新缓存每个访问 token 的条目。)

最佳答案

为了我:

$client = \Google_Client();
//...        
$client->getCache()->clear();
$client->setAccessToken($access_token);

完美地工作。

关于PHP Google API 客户端缓存访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35441085/

相关文章:

php - 如何从 PHP 向 javascript 方法 Date.setTime() 提供值?

php - 同一个表中的两个递增列

api - 如何从第三方服务接收 webhook 信号

iphone - iOS facebook 检查好友是否安装了应用

IIS 7.5 从响应中删除 etag header

java - 当所有数据库访问都通过 JPA 执行时,有什么理由禁用缓存?

php - 在下拉列表中显示预先选择的值

php - Laravel:存储不将文件放入公共(public)文件夹

api - Chrome 存储配额报告低于预期

c# - MemoryCache.Set 返回删除的缓存项