Node.js 调查谷歌网站的变化
我需要一个事件,是被解雇时,我的谷歌网站上的一些变化 有一个包含所有最新更改的XML提要。我正计划用Zapier轮询这个提要,当有什么变化时,Zapier会向我提供的url发出http请求,这样我就可以得到我的事件 只要网站是公开的,这就行,但在我的情况下不是 因此,我考虑为谷歌提供的提要构建一个代理。代理将使用正确的身份验证调用提要并传递内容。Zapier将使用Zapier友好的身份验证机制调用代理 我想我需要用一个服务帐户给google feed打电话。那么如何使用node.js实现这一点呢 我一直在看这里: 想明白了 我制作了一个具有基本身份验证的代理,可以通过https访问。这个代理将通过我感兴趣的Google站点的活动提要 我使用googleapis模块在node.js中构建了代理。下面是我使用的一段代码:Node.js 调查谷歌网站的变化,node.js,api,google-api,google-sites,Node.js,Api,Google Api,Google Sites,我需要一个事件,是被解雇时,我的谷歌网站上的一些变化 有一个包含所有最新更改的XML提要。我正计划用Zapier轮询这个提要,当有什么变化时,Zapier会向我提供的url发出http请求,这样我就可以得到我的事件 只要网站是公开的,这就行,但在我的情况下不是 因此,我考虑为谷歌提供的提要构建一个代理。代理将使用正确的身份验证调用提要并传递内容。Zapier将使用Zapier友好的身份验证机制调用代理 我想我需要用一个服务帐户给google feed打电话。那么如何使用node.js实现这一点呢
var jwtClient = new googleapis.auth.JWT(
client_id_email,
__dirname + 'key.pem',
null, ['https://sites.google.com/feeds/'],
'user@domain.org'
);
jwtClient.authorize(function(err, token) {
if (err) return next(err);
return rest({
path: 'https://sites.google.com/feeds/activity/{domainName}/{siteName}',
headers: {
"GData-Version": "1.4",
Authorization: token.token_type + ' ' + token.access_token
},
params: {
domainName: 'domain.org',
siteName: 'site',
},
}).done(function(result) {
res.set(result.headers);
res.send(result.entity);
}, next);
});
用户名(user@domain.org)在该示例中,是服务帐户模拟的用户。此用户必须具有访问该网站的权限
在本例中,我将服务帐户密钥放在文件名“key.pem”中
现在,您必须允许访问要访问的域的服务帐户。您可以在域的管理站点(admin.google.com)上执行此操作