2012-01-18 67 views
0

我正在开发一个PHP脚本来显示包含一些关于我的Google Analytics配置文件的图表和统计信息的页面。我向服务器发送3个或4个ajax异步调用;然后服务器使用google-api-php-client获取数据。 Google每次刷新页面大约有10次请求。google-api-php-client apiAuthException刷新OAuth2

的问题是我是从API得到完全随机的例外:

Fatal error: Uncaught exception 'apiAuthException' with message 'Error refreshing the OAuth2 token, message: ' in apiOAuth2.php on line 242

有一次我成功地获取数据,一次不行。这是非常烦人的,因为我找不到为什么可能是什么?异步电话也许?

只是为了确保用户配额设置为1000个请求/秒。最终,我从API获得'用户配额优秀',这是不可能的。

+0

您的Google帐户的两步验证是否已关闭?如果您尝试通过PHP-API访问您的GA帐户但打开了两步,则会引发此错误。 – jmishra 2012-01-19 01:17:59

+0

@ jbloom1704感谢您的提示。我即将解决这个错误。我认为这是我的错:在每次请求时,访问令牌(离线)可能会过期,并且它将被替换为一个新的访问令牌,我需要在通话结束后立即回写给我的商店。我认为这是问题:从文件中读取旧的访问令牌! – gremo 2012-01-19 10:39:42

+0

不错,请问为什么你在基于PHP的API中使用Oauth?在我看来,你可以简单地使用这个后端强度(脚本)来完成安全的调用,而无需任何授权。我的意思是,这就是我诉诸它的原因。 – jmishra 2012-01-20 02:08:47

回答

0

我回答自己,因为我发现这个问题(是我的坏):

  • 我的访问令牌存储到一个加密的文件
  • 即使访问令牌应该离线不真的离线:它过期了,但包含刷新令牌 API将发送以获得新的新访问令牌
  • 新访问令牌应该再次保存到文件中(我将它保存到__destruct()我的包装类的方法),并用于下一个请求(我没有保存它!)
相关问题