我正在尝试制作一个服务器应用程序来定期从我自己的GA帐户中提取Google Analytics数据.请注意,它是一个访问我自己的数据的个人服务器端应用程序,即没有最终用户访问此应用程序.
因此,我在Google API控制台中将我的应用程序注册为服务应用程序,该应用程序为我提供了客户端ID和私钥.据我所知,服务应用程序不使用应用程序密钥和重定向URL,因为此服务器到服务器身份验证流程中没有最终用户.实际上,Google API控制台没有给我任何机密,也没有提示我提供重定向网址.
不幸的是,我无法弄清楚如何在Google的PHP客户端API中验证我的服务应用程序.有关于验证的Web应用程序广泛的文件与最终用户.
Google的文档表明,可以通过使用私钥对JWT请求进行签名来验证服务器到服务器.我只是无法弄清楚如何在PHP客户端API中做(虽然我浏览了源代码,但肯定有一个脚本用私钥签署请求.)
我在这里错过了什么吗?如何使用我的私钥和Google PHP客户端API对服务应用程序执行身份验证?
编辑清晰
我完全理解为什么它是更好地使用原型,而不是构造函数的定义一个类的方法(即对"这个"在JavaScript"原型"的用途?)不过,我最近碰到一个前来HashMap类定义count 属性的原型和map构造函数中的属性:
js_cols.HashMap = function(opt_map, var_args) {
/**
* Underlying JS object used to implement the map.
* @type {!Object}
* @private
*/
this.map_ = {};
/...
}
/**
* The number of key value pairs in the map.
* @private
* @type {number}
*/
js_cols.HashMap.prototype.count_ = 0;
Run Code Online (Sandbox Code Playgroud)
是否有优势count在原型中声明实例属性而不是this.count_ = 0;在构造函数中说?如果是这样,为什么不js_cols.HashMap.prototype.map_ = {};呢?
编辑:一个类似的问题被问到,为什么在JavaScript中为实例变量的原型声明属性,并且"默认值"被引发作为用例,但是没有解释为什么这比仅仅定义默认值更合乎需要.构造函数.
我花了最近几天研究了一种在MooTools类中拥有私有或受保护属性的方法.各种文章(即Sean McArthur 在MooTools类中获取私有变量)为MooTools的弃用版本提供了一种方法,但我无法找到MooTools 1.3+的工作方法.
今天,在玩了几个小时的代码后,我想我已经创建了一个合适的解决方案.我说"思考",因为我真的不是一个经验丰富的程序员.我希望这里的社区可以查看我的代码并告诉我它是否真的是一个有效的解决方案,或者是hackjob仿真.
var TestObj = (function() {
var _privateStaticFunction = function() { }
return new Class({
/* closure */
_privates: (function() {
return function(key, val) {
if (typeof(this._data) == 'undefined') this._data = {};
/* if no key specified, return */
if (typeof(key) == 'undefined') return;
/* if no value specified, return _data[key] */
else if (typeof(val) == 'undefined') {
if (typeof(this._data[key]) != 'undefined') return this._data[key];
else return;
}
/* if second argument, …Run Code Online (Sandbox Code Playgroud)