0

我正在对Google Analytics API进行一些试验,并且进展顺利(现在只是按照他们的 Hello Analytics 教程)。当我在我的旧虚拟域上运行它时,代码运行良好,但是当我尝试从我目前正在开发的站点(使用 joomla)中执行它时,我遇到了 http-requests 的问题.

我给用户一个指向谷歌的链接,在那里我可以选择谷歌帐户并授予对 GA 等的访问权限,当它重定向到我的网站时,我什么也得不到。它加载了一段时间,然后将我发送到我的网站 404 页面。

我的代码看起来像这样(它位于组件视图中的 default.php 中。出于测试目的,我删除了 defined(j_exec) 或 die()):

<?php



require_once 'libraries/google-api-php-client/src/Google_Client.php';
require_once 'libraries/google-api-php-client/src/contrib/Google_AnalyticsService.php';
require_once 'libraries/google-api-php-client/src/contrib/Google_PlusService.php';

$session = JFactory::getSession();

$client = new Google_Client(); 
//$client->setAccessType('online');
$client->setApplicationName('sdffdgdfg');
$client->setClientId('my id ;)');
$client->setClientSecret('dsfdsf');
$client->setRedirectUri('asdsdf');
$client->setDeveloperKey('fdfg');
$client->setScopes('https://www.googleapis.com/auth/analytics.readonly');

// Set the client libraries to convert all the API responses from associative arrays into objects.
$client->setUseObjects(true);


//$plus = new Google_PlusService($client);
if( isset( $_GET['code'] ) ){

    $client->authenticate($_GET['code'] );
    $session->set('token', $client->getAccessToken());
    //i took away the redirect here cuz i wanted to see that the code actually came :)


}

$token = $session->get('token');
if( isset( $token ) ){

    $client->setAccessToken($session->get('token'));


}

if( !$client->getAccessToken() ){

    $authUrl = $client->createAuthUrl();
    print "<a class ='login' href='$authUrl'>Connect me!</a>";

}else{
    echo "WE'RE IN!!";
    //$analytics = new apiAnalyticsService($client);
    //runMainDemo($analytics);

}


?>

如果我评论 $client->authenticate($_GET['code'] ); 行,问题就会停止。所以我沿着这条路走,最后来到一条线说

$request = Google_Client::$io->makeRequest(new Google_HttpRequest(self::OAUTH2_TOKEN_URI, 'POST', array(), array(
          'code' => $code,
          'grant_type' => 'authorization_code',
          'redirect_uri' => $this->redirectUri,
          'client_id' => $this->clientId,
          'client_secret' => $this->clientSecret
      )));

此行位于 Google_OAuth2.php 第 96 行。因此请求出现问题并且超时。我能做些什么呢?这几乎是我自己解决问题所需要的,所以我真的需要一些帮助!可能与joomla有关吗?还是我的服务器配置?(与我的虚拟域不同..)

非常感谢提前!!

4

1 回答 1

0

我忘了说这已经解决了。我在发帖之前给我的服务器提供商发了电子邮件,他们告诉我他们与此无关。然后我再次给他们发了电子邮件(比如在此处发布两周后),他们说我的防火墙已关闭。当他们打开它时,我进去了:)

于 2013-09-06T06:44:21.900 回答