我正在使用Google的PHP客户端库访问分析API,但我一直收到一个错误,调用非对象上的成员函数。我被难住了一天多了。我已经阅读了几个解决方案,但我不知道如何解决这个问题。
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;
这是(我认为)谷歌建议的设置方式,但当我打印出$dailyUploads的内容时,它是空的/空的。如果我打印出$analyticsService,我会看到Google_analyticsService的代码。
在我的代码后期,经过身份验证后,我尝试使用如下的上传功能:
$upload = $dailyUploads->upload($media);
这会产生我前面提到的错误,致命错误:在非对象上调用成员函数upload()。
有人能帮忙吗?我在俯瞰什么?
我现在已经解决了这个问题。有两个问题:
-
Google_AnalyticsService.php文件自最近的稳定版本以来一直在更新,所以我链接到的代码实际上并没有加载到我的项目中。我通过更新我的库以包含他们网站上显示的代码来解决这个问题。
-
引用该类的正确方式是"management_dailyUploads"。我更新了我的代码。
$analysticsService=新的Google_analyticsService($client)
$dailyUploads=$analyticsService->management_dailyUploads;$upload=$dailyUploads->上传("123456","UA-123456-1","xXxXxX",2013-02-15,1,"成本",数组("重置"="gt;true","数据"=">file_get_contents("/path/to/file.csv"),";mimeType"=>'应用程序/八位字节流’;uploadType"=>'媒体);
一旦我实现了这些更新,我的应用程序就开始与谷歌的服务器通信。我现在有一个不同的问题需要解决(我们不是一直都这样吗?),但引发这个线程的问题已经解决了,所以我将把它标记为已回答。
ps-我不知道为什么这里的代码格式不正确。