1

Google の PHP クライアント ライブラリを使用して分析 APIにアクセスしていますが、 Call to a member function on a non-objectというエラーが発生し続けます。私は1日以上困惑しています。いくつかのソリューションを読みましたが、これを解決する方法がわかりません。

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 がこれを設定するために推奨する方法ですが、$dailyUploads の内容を出力すると空/null になります。$analyticsService を出力すると、Google_AnalyticsService のコードが表示されます。

コードの後半で、認証後、次のようにアップロード機能を使用しようとします。

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

これにより、前述のエラー「致命的なエラー: 非オブジェクトでのメンバー関数 upload() の呼び出し」が生成されます。

誰でも助けることができますか?私は何を見落としていますか?

4

1 に答える 1

2

これで解決しました。次の 2 つの問題がありました。

  1. Google_AnalyticsService.php ファイルは、最新の安定版リリース以降に更新されたため、リンク先のコードは実際にはプロジェクトに読み込まれませんでした。ライブラリを更新して、ウェブサイトに表示されるコードを含めることで、これを解決しました。

  2. クラスを参照する正しい方法は「management_dailyUploads」です。そのようにコードを更新しました。

    $analyticsService = 新しい 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 - ここでコードが正しくフォーマットされなかった理由がわかりません。

于 2013-02-15T21:22:20.047 に答える