我正在使用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()。
有人可以帮忙吗?我在俯瞰什么?
答案 0 :(得分:1)
我现在已经解决了这个问题。有两个问题:
引用该类的正确方法是“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'));
我实施这些更新后,我的应用就开始与Google服务器进行通信了。我现在要解决一个不同的问题(不是我们总是这样吗?),但是提示这个帖子的问题已经解决了,所以我会将其标记为已回答。
ps - 我不知道为什么这里的代码格式不正确。