0

背景:我们有两个帐户,每个帐户都有多个配置文件。我正在使用提供的 API在 PHP 中开发应用程序。我可以分别成功地从两个帐户中检索数据,但是每当我第二次实例化 Google_Client 对象(当然使用不同的变量名)时,它会立即将我从第一个帐户中注销并覆盖第一个帐户的设置。
有没有人成功地使用 PHP API 客户端同时登录到两个帐户,并且可以给我一个关于如何完成的提示?
相关代码部分:

$client1    = new Google_Client();
$client1    ->setAssertionCredentials($omitted);
$client1    ->setClientId($id);
$client1    ->setAccessType('offline_access');
$gaClient1  = new Google_AnalyticsService($client);
//I can now successfully query the Analytics API, but when I do this
$client2    = new Google_Client();
//and query gaClient1 again, it throws a "you must login/401"-error
4

1 回答 1

0

我想问题是api使用文件缓存来处理请求。现在,当创建第二个客户端时,它正在使用相同的缓存文件夹,因此它会覆盖以前的设置。

现在在您的 config.php 中如下:

'ioFileCache_directory'  =>
    (function_exists('sys_get_temp_dir') ?
        sys_get_temp_dir() . '/Google_Client' :
    '/tmp/Google_Client')

这是始终返回相同结果的部分。创建客户端时,您可以发送自己的配置数组,它将与主服务器合并。所以你可以使用:

$client1    = new Google_Client(array('ioFileCache_directory'  => '/tmp/dirclient1'));
$client2    = new Google_Client(array('ioFileCache_directory'  => '/tmp/dirclient2'));

同样在您的代码中,您创建了一个$client1,但稍后您使用$gaClient1 = new Google_AnalyticsService($client);. 不应该$gaClient1 = new Google_AnalyticsService($client1);吗?

于 2013-05-03T14:34:54.893 回答