Tag: google api

无法通过nodejs发送带有googleapis服务帐户和JWTauthentication的邮件

我试图发送一个电子邮件使用服务帐户和JWT身份validation,并不断获取和一个非常无益的消息错误: { code: 500, message: null } 此代码片段来自以下StackOverflow链接: 无法通过nodejs中的google api发送邮件 这似乎是解决scheme是将参数中的密钥更改为resource而不是message但它不适合我。 这很奇怪,因为在文档( https://developers.google.com/gmail/api/v1/reference/users/messages/send )中的JS示例中,它声称密钥仍然是message 我正在用身份validation var jwtClient = new google.auth.JWT(config.SERVICE_EMAIL, config.SERVICE_KEY_PATH, null, config.ALLOWED_SCOPES); 然后发送一封电子邮件 jwtClient.authorize(function(err, res) { if (err) return console.log('err', err); var email_lines = []; email_lines.push("From: \"Some Name Here\" <rootyadaim@gmail.com>"); email_lines.push("To: hanochg@gmail.com"); email_lines.push('Content-type: text/html;charset=iso-8859-1'); email_lines.push('MIME-Version: 1.0'); email_lines.push("Subject: New future subject here"); email_lines.push(""); email_lines.push("And the […]

我怎样才能得到谷歌适合的数据

您好,我怎样才能从谷歌适合的数据得到的活动。 获取访问令牌后,我几乎完成了所有方面我怎么才能得到谷歌适合的数据,通过使用下面的代码,我只能得到这种types的响应 码: gFit.listExistingSessions(req.query.token,function(status,data){ // console.log('Sessions',data); res.render('results', { resp: data }); }); 响应: "session": [ { "id": "3116a82009dd6cd7:activemode:running:1456064572752", "startTimeMillis": "1456064572752", "endTimeMillis": "1456114372880", "modifiedTimeMillis": "1456745578987", "application": { "packageName": "com.google.android.apps.fitness" }, "activityType": 8 }, { "id": "3116a82009dd6cd7:activemode:running:1456064572752", "name": "Evening running", "startTimeMillis": "1456064572752", "endTimeMillis": "1456114370411", "modifiedTimeMillis": "1456745578992", "application": { "packageName": "com.google.android.apps.fitness" }, "activityType": 8 }, { "id": "3116a82009dd6cd7:activemode:biking:1456742139081", […]

有没有什么好的节点模块连接谷歌缩短API缩短长URL

我正在与Node.js,并试图缩短长URL,我想连接到谷歌缩短API,如果在Node.js的API文档中find 谷歌的API-的NodeJS客户端 但它只有将短URL转换为长URL的代码, 我发现node-google-url-short 这不使用API​​密钥,因为我可能每天发送超过10,000个请求,这是不好的,它不是一个维护回购我想。 而这一个谷歌url ,似乎也描绘了这一个。 那么还有其他好的节点模块吗? 我想缩短一个长的URL。 先谢谢你 :)

使用Google API创buildGoogle应用内产品

我的要求是 `{ "packageName": "com.test.package", "sku": "title", "status": "inactive", "subscriptionPeriod": "P1M", "purchaseType": "subscription", "listings": { "en-US": { "title": "title", "description": "title" } }, "defaultLanguage": "en-US", "defaultPrice": { "priceMicros": "100000000", "currency": "SGD" } }` (参考: [https://www.googleapis.com/androidpublisher/v2/applications/packageName/inappproducts] )。 获取此请求的错误响应 `{ "error": { "errors": [ { "domain": "androidpublisher", "reason": "inAppProductRegionsMissingPricing", "message": "Must provide a price for each region the […]

使用NodeJS在Heroku上validationGoogle Sheet API

我正在按照以下示例访问Google表格API: https://developers.google.com/sheets/api/quickstart/nodejs 在示例代码中,以下方法可以获取新的oauth标记。 function getNewToken(oauth2Client, callback) { var authUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: SCOPES }); console.log('Authorize this app by visiting this url: ', authUrl); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question('Enter the code from that page here: ', function(code) { rl.close(); oauth2Client.getToken(code, function(err, token) { if (err) { console.log('Error while trying […]

在Google Contacts API版本3.0上使用oauth2检索刷新标记

我正在使用oauth2(node.js和connect-oauth库)连接到谷歌联系人API版本3.0 。 这样做,我得到一个回应,如: { access_token : "…", "token_typen": "Bearer", "expires_in" : 3600, "id_token": "…" } 我错过刷新令牌用于获取一个新的访问令牌,只要后者过期。 oauth2的选项 { host: 'accounts.google.com', port: 443, path: '/o/oauth2/token', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', Host: 'accounts.google.com', 'Content-Length': 247 } } post-body'redirect_uri = http%3A%2F%2Flocalhost%2Foauth2callback&grant_type = authorization_code&client_id = CLIENTID&client_secret = CLIENTSECRET&type = web_server&code = 4%2F3gbiESZTEOjiyFPLUhKfE_a_jr8Q' 注意:我试图从类似的问题向request-post_body添加approval_prompt = force,但是这导致了一个错误 { statusCode: 400, […]

持续访问Google Calendar API

我如何请求访问用户的日历一次 ,然后查询事件,而不必再次请求访问? 是否有一个访问键,只要它没有被撤销,可以授予连续访问权限? 我目前在运行express + mongodb的nodejs应用程序中使用google-calendar模块。 以下示例显示了进行OAuth请求并redirect回应用的部分代码。 这很好。 我想要的是,只要我有权限,就可以随时查询用户的事件。 这将用于预订应用程序,一旦用户注册他们的公共Google日历,允许其他人看到他们的可用性。 我已经看过Google Calendar API文档,但是我无法弄清楚我需要的持续访问需要什么。 configuration : var GoogleCalendar = require('google-calendar'); var google_calendar = new GoogleCalendar.GoogleCalendar(config.google.clientId, config.google.clientSecret, 'http://localhost:3000/authentication'); 显示路线 : app.get('/display', function(req, res) { // redirect user to Google Authentication var access_token = req.session.access_token; if(!access_token) { req.session.authReturn = req.url; return res.redirect('/authentication'); } google_calendar.listCalendarList(access_token, function(err, calendarList) { // […]

如何从passportjs中的刷新令牌获取新的Google oauth访问令牌

似乎有关于如何从刷新令牌获取访问令牌的一些冲突的build议: 这回答说,passportjs不涉及刷新访问令牌,它应该通过cron作业完成: 刷新Passport.js中的令牌 这回答说:“不需要任何cron作业…当用户使用已过期的访问令牌从API请求数据,这应该会导致您的框架失败,更新,然后重试。 OAuth 2.0 – 访问令牌何时应该刷新令牌? 确保我们始终向Google提供有效的访问令牌的最简单方法是什么? 现在,我们只是将刷新令牌存储在数据库中,从不使用它,每当访问令牌过期时,都会强制用户通过“允许/拒绝权限”stream。

Google日历推送API节点不工作?

下面是我的代码: var google = googleapis; var OAuth2 = google.auth.OAuth2; var oauth2Client = new OAuth2('xxxxxx', 'xxxxxxx', 'https://bt-feedback.meteor.com/oauth2'); oauth2Client.setCredentials({ access_token: 'xxxxxxxx', refresh_token: 'xxxxxxxx' }); google.options({ auth: oauth2Client }); // set auth as a global default var calendar = google.calendar('v3'); calendar.events.watch({ calendarId: 'xxxxxxxxxxx' }, { id: 'xxx-xx-xx-xx-xxxxxxxxxx', address: 'https://bt-feedback.meteor.com/notifications', type: 'web_hook' }, function(err, res) { console.log("err, res:", err, […]

无法授权通过Google API node.js SDK使用现有的访问令牌

有点背景第一; 我有一个基于PHP的应用程序处理Google OAuthstream程,并将生成的访问令牌存储在数据库中。 我可以在另一个PHP脚本中使用这个访问令牌,所以我不认为这个令牌已经过期。 当我尝试在node.js脚本中使用访问令牌时,问题出现了。 我总是从Google API中获取这个错误。 {[Error:Invalid Credentials] code:undefined,errors:[{domain:'global',reason:'authError',message:'Invalid Credentials',locationType:'header',location:'Authorization'}]} 我使用的node.js代码作为参考,如下所示: var CLIENT_ID = 'CLIENT_ID'; var CLIENT_SECRET = 'CLIENT_SECRET'; var REDIRECT_URL = 'REDIRECT_URL'; var oauth2Client = new OAuth2Client(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL); oauth2Client.setCredentials({ access_token: 'ACCESS_TOKEN' }); var analytics = google.analytics('v3'); analytics.management.accounts.list({ auth : oauth2Client }, function(err, resp) { console.log(err); console.log(resp); }); 我已经尝试在testing脚本中对access_token值进行硬编码,但仍然是相同的结果。 任何build议,欢迎!