Php Can';t从joomla站点发出google http请求
我正在用Google Analytics API做一些实验,它进展得很好(现在只是跟随他们的Hello Analytics教程)。当我在旧的虚拟域上运行代码时,代码可以正常运行,但当我尝试从我当前正在开发的站点(使用joomla)执行此操作时,http请求会出现问题 我给用户一个指向谷歌的链接,在那里我可以选择谷歌账户并授予对GA等的访问权,当它重定向到我的网站时,我什么也得不到。它加载一段时间,然后将我发送到我的站点404页面 我的代码如下所示(它位于组件视图中的default.php中。出于测试目的,我去掉了定义的(j_exec)或die()): 这一行位于Google_OAuth2.php第96行。所以请求出了问题,它超时了。我能怎么办?这几乎是我自己解决问题所需要的,所以我真的需要一些帮助!这可能和joomla有关吗?还是我的服务器配置?(与我的虚拟域不同..)Php Can';t从joomla站点发出google http请求,php,api,http,google-analytics,Php,Api,Http,Google Analytics,我正在用Google Analytics API做一些实验,它进展得很好(现在只是跟随他们的Hello Analytics教程)。当我在旧的虚拟域上运行代码时,代码可以正常运行,但当我尝试从我当前正在开发的站点(使用joomla)执行此操作时,http请求会出现问题 我给用户一个指向谷歌的链接,在那里我可以选择谷歌账户并授予对GA等的访问权,当它重定向到我的网站时,我什么也得不到。它加载一段时间,然后将我发送到我的站点404页面 我的代码如下所示(它位于组件视图中的default.php中。出于
提前多谢 我忘了说这个问题已经解决了。在这里发布之前,我给我的服务器提供商发了电子邮件,他们告诉我他们与此无关。然后我又给他们发了一封电子邮件(大概是在这里发帖两周后),他们说我的防火墙关闭了。当他们打开它时,我进入了:)这看起来像是重定向url未找到你已通过是的,但问题是如果我注释掉$client->authenticate,一切都很好,但我无法验证在这种情况下..尝试检查!空($\u GET['code'])thx,但它不起作用。。我猜你的意思是代替isset。这个问题似乎离题了,因为它由于封闭的防火墙而过于本地化。
<?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);
}
?>
$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
)));