使用Google PHP客户端库导致致命错误

时间:2013-02-15 14:51:18

标签: php google-api google-analytics-api

我正在使用Google's PHP client library访问analytics API并且我一直收到错误,调用非对象上的成员函数。我被困了一天多了。我已经阅读了several solutions,我没有看到如何解决这个问题。

require_once "google-api-php-client/src/Google_Client.php";
require_once "google-api-php-client/src/contrib/Google_AnalyticsService.php";
session_start();

$client = new Google_Client();
$client->setApplicationName("app-name");
$client->setClientId('client-id');
$client->setClientSecret('my-secret');
$client->setRedirectUri('http://www.website.com/');
$client->setDeveloperKey('secret-key');

$analyticsService = new Google_AnalyticsService($client);
$dailyUploads = $analyticsService->dailyUploads;

这是(我认为Google recommends设置它的方式,但是当我打印出$ dailyUploads的内容时,它是空的/ null。如果我打印出$ analyticsService,我会看到Google_AnalyticsService的代码。

稍后在我的代码中,经过身份验证后,我尝试使用上传功能:

$upload = $dailyUploads->upload($media);

这会产生我前面提到的错误,致命错误:在非对象上调用成员函数upload()。

有人可以帮忙吗?我在俯瞰什么?

1 个答案:

答案 0 :(得分:1)

我现在已经解决了这个问题。有两个问题:

  1. 自最新稳定版本以来,Google_AnalyticsService.php文件已更新,因此我链接到的代码实际上并未加载到我的项目中。我通过更新我的库来解决这个问题,以包含their website上显示的代码。
  2. 引用该类的正确方法是“management_dailyUploads”。我这样更新了我的代码。

    $ analyticsService = new Google_AnalyticsService($ client);
    $ dailyUploads = $ analyticsService-> management_dailyUploads;

    $ upload = $ dailyUploads-> upload('123456','UA-123456-1','xXxXxXxX',2013-02-15,1,'cost',array(“reset”=> true) ,“data”=> file_get_contents('/ path / to / file.csv'),“mimeType”=>'application / octet-stream',“uploadType”=>'media'));

  3. 我实施这些更新后,我的应用就开始与Google服务器进行通信了。我现在要解决一个不同的问题(不是我们总是这样吗?),但是提示这个帖子的问题已经解决了,所以我会将其标记为已回答。

    ps - 我不知道为什么这里的代码格式不正确。