- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Oauth 2.0 与 Google Analytics 一起开发 WP 插件。
我的所有身份验证和数据提取工作正常,除了这个问题:我第一次获得新的 Google 授权代码(例如:“4/-xbSbg...”)并进行身份验证,然后尝试调用新的 Google_AnalyticsService() 对象,它抛回错误:
“Google_Exception”消息“通过身份验证后无法添加服务”
这是第 109 行:http://code.google.com/p/google-api-php-client/source/browse/trunk/src/apiClient.php?r=258
一旦我刷新调用此代码的页面,它就可以正常工作 - 即,check_login() 的第一个分支没问题,但身份验证调用无法正常工作。
您看到代码似乎在提示,因为我首先进行了身份验证,并且消息说我不应该这样做。评论和代码真的让我搞不清楚我的问题是什么(登录代码还不是很干净,我意识到)。
重要说明:我正在为已安装的应用程序使用 Google 身份验证,因此我们要求用户提供授权代码,并使用它来获取授权 token 。
get_option()、set_option() 和 update_option() 是 WP 原生函数,不是问题的一部分
这是我的代码:
class GoogleAnalyticsStats
{
var $client = false;
function GoogleAnalyticsStats()
{
$this->client = new Google_Client();
$this->client->setClientId(GOOGLE_ANALYTICATOR_CLIENTID);
$this->client->setClientSecret(GOOGLE_ANALYTICATOR_CLIENTSECRET);
$this->client->setRedirectUri(GOOGLE_ANALYTICATOR_REDIRECT);
$this->client->setScopes(array(GOOGLE_ANALYTICATOR_SCOPE));
// Magic. Returns objects from the Analytics Service instead of associative arrays.
$this->client->setUseObjects(true);
}
function checkLogin()
{
$ga_google_authtoken = get_option('ga_google_authtoken');
if (!empty($ga_google_authtoken))
{
$this->client->setAccessToken($ga_google_authtoken);
}
else
{
$authCode = get_option('ga_google_token');
if (empty($authCode)) return false;
$accessToken = $this->client->authenticate($authCode);
$this->client->setAccessToken($accessToken);
update_option('ga_google_authtoken', $accessToken);
}
return true;
}
function getSingleProfile()
{
$analytics = new Google_AnalyticsService($this->client);
}
}
最佳答案
您需要将 $analytics = new Google_AnalyticsService($this->client);
移动到 function GoogleAnalyticsStats()
中,最好将 $analytics 变成一个成员变量.
class GoogleAnalyticsStats
{
var $client = false;
var $analytics = false;
function GoogleAnalyticsStats()
{
$this->client = new Google_Client();
$this->client->setClientId(GOOGLE_ANALYTICATOR_CLIENTID);
$this->client->setClientSecret(GOOGLE_ANALYTICATOR_CLIENTSECRET);
$this->client->setRedirectUri(GOOGLE_ANALYTICATOR_REDIRECT);
$this->client->setScopes(array(GOOGLE_ANALYTICATOR_SCOPE));
// Magic. Returns objects from the Analytics Service instead of associative arrays.
$this->client->setUseObjects(true);
$this->analytics = new Google_AnalyticsService($this->client);
}
...
现在,您可以从 getSingleProfile
中调用分析 API。
关于google-analytics - 消息为 'Cant add services after having authenticated' 的“Google_Exception”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12397815/
我已将项目导入Eclipse。该API的版本为15,并且已成功编译,但我需要第7位,因为无法在我的手机上更新操作系统。将Android API的版本更改为较旧的版本(第7个)后,我无法编译该项目,发生
所以我为自己构建了一个小型服务器应用程序来充实我的简历,但我遇到了一个我无法弄清楚的问题 据我所知,我的服务器运行正常,因为我(仅在我自己的计算机上)可以连接到服务器。 一旦我尝试让任何其他计算机连接
当我尝试打电话时 $this->load->database(); 产生以下错误“调用非对象上的成员函数数据库()” 自动加载数据库也无济于事... 当我尝试自动加载它时。 对数据库的所有调用,如 $
我创建了一个 Django 项目和一个虚拟环境,我在我的 Ubuntu 服务器上安装了 python。当我尝试通过键入来运行开发服务器时 $ ./manage.py runserver 0.0.0.0
我正在尝试编译 this scrip ,但我有这个消息: Can't locate Email/Address.pm in @INC (@INC contains: C:/strawberry/per
我正在尝试将我开始的 repo 的所有权转移到另一个 github 帐户。我在我的收款账户中收到要求转让许可的通知。我点击了电子邮件中的链接。 Github 回复“抱歉,此存储库传输无法完成。”有没有
我在我的项目中使用谷歌分析,我得到“套接字或流问题”。错误信息。 W/GoogleAnalyticsTracker(416): Problem with socket or streams. W/Go
这个问题已经有答案了: Why does jQuery or a DOM method such as getElementById not find the element? (7 个回答) 已关闭
我正在尝试将命令行参数解析为 Options options = new Options(); options.addOption("c", "count", false, "numb
我正在尝试为我的 html5 音频播放器制作进度条,并制作通过点击来更改轨道播放时间的功能。我决定使用输入[范围]来完成此操作,但是当我点击栏时,当前播放时间不会更新,轨道只是从头开始播放: 我的ht
我是 XCode 和 Swift 的新手...但是,我想尝试一下...我想要两个可拖动的图像,如果它们碰撞,应该弹出一个警报窗口...我已附加下面的代码...当我运行代码时,我收到以下警告: UIPa
我一直在关注一个教程,它有点旧,1.6 Java,我使用1.8。所以有些事情发生了变化,这是我的代码: private int width = 600; private int height = 40
我正在开发一个项目,我必须在其中创建一个网络应用程序。该网络应用程序在属于我们大学的服务器上通过 Jetty 运行。 我有来自该服务器的备份,该备份可以在该服务器上运行。但我想在 eclipse 中使
我从 svgalib 编译了一些示例,控制台显示: 使用EGA驱动程序 svglib 1.4.3 仅此而已,就像它在某个地方画的一样,但我看不到它。这可能是一个关于 svgalib 的非常菜鸟的问题,
正如您在图像上看到的那样,我在 GridView 单元格中有一个 gridview。我正在尝试删除我认为是单词 has 下方和 next 单词之外的 2 条水平线。 foreach (TableCe
这是我的声明代码: database = FirebaseDatabase.getInstance(); myRef = database.getReference("lifts"); 为什么我不能添
我正在尝试从 AppA 启动 AppB。关于 AppB I Activity 的问题: Intent i = new Intent(); i.setAction("START
我最近将此添加到我的流程配置中,因为大量与流程拾取的节点模块相关的错误 [ignore] .*/node_modules/.* 这解决了那些错误,但引入了新错误。现在,我导入的每个模块都会导致错误,其
在一个项目中,我们同时使用了 Http 和 HttpClient 来获取 header 参数。 Http 返回 header 参数,但 HttpClient 没有。 constructor(priva
我实际上面临一个问题。我在生产服务器上安装了 pgbouncer,在该服务器上我还有一个 Odoo 实例和 postgresql。 也许: 在我的日志中,我有这个: 2018-09-10 16:39:
我是一名优秀的程序员,十分优秀!