标签: google-api-nodejs-client

向 Node 注册 Glass Timeline 通知

我正在尝试使用“mirror-api-subscription”事件侦听器注册 TAKE_A_NOTE。我没有任何运气:我可以使用“我的应用程序”启动记笔记,但是,没有控制台日志表明该事件已被识别。

我想识别 TAKE_A_NOTE 函数何时发生或完成,并随后处理响应。我不知道订阅是否应该在流上,或者我是否以错误的方式实现了 EventListener。我们将非常感谢您的帮助。

我正在使用的代码是:

// 参考
// http://www.recursiverobot.com/post/57348836217/getting-started-with-the-mirror-api-using-node-js
// https://www.npmjs.org/package/mirror-api-subscription

var express = require('express')
    , http = require('http')
    , https = 要求('https')
    , fs = 要求('fs')
    , googleapis = require('googleapis')
    , OAuth2Client = googleapis.OAuth2Client;
var 应用程序 = Express();
var oauth2Client = new OAuth2Client(process.env.MIRROR_DEMO_CLIENT_ID,
   process.env.MIRROR_DEMO_CLIENT_SECRET、process.env.MIRROR_DEMO_REDIRECT_URL);


// 所有环境
app.set('端口', 8888);
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
应用程序.use(应用程序.路由器);

var getToken = 函数 () {
    谷歌API
        .discover('镜像', 'v1')
        .execute(函数(错误,客户端){
            如果(!!错误){
                失败();
                返回;
            }

            insertContact(客户端、失败、成功);
            insertSubscription(客户端、失败、成功);
        });
    };


var insertContact = function (client, errorCallback, successCallback) …

javascript node.js google-glass google-mirror-api google-api-nodejs-client

5
推荐指数
1
解决办法
459
查看次数

重命名 Google Cloud Storage 中的文件?

您可以重命名 Google Cloud Storage 中的文件吗?

我让用户上传照片,但我想让他们能够编辑照片,至少通过更改他们上传照片的名称。我正在通过 Node.js 使用 Javascript。

谢谢!

javascript node.js google-cloud-storage google-api-nodejs-client google-cloud-platform

5
推荐指数
1
解决办法
4249
查看次数

google api 的刷新令牌在 nodejs 中无法正常工作

我正在使用 google api nodejs ,我尝试从 google Anaytics 获取数据

var google = require('googleapis');
var OAuth2Client = google.auth.OAuth2;
var CLIENT_ID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
var CLIENT_SECRET = 'xxxxxxxxxxxxxxxxxxxxxx';
//var REDIRECT_URL = 'http://yieldops.co/oauth2Callback';
var REDIRECT_URL = 'http://localhost:8000/oauth2Callback';
var oauth2Client = new OAuth2Client(CLIENT_ID, CLIENT_SECRET,REDIRECT_URL);

var credentials={}
credentials.expiry_date= "1463514280558",
credentials['refresh_token']="aaaaaaaaa"
credentials['access_token']="aaaaaaaaaaaaaaa"
oauth2Client.setCredentials(credentials)

var gauth = {
'auth': outh2Client,
'ids': 'ga:101' ,
'start-date': '2016-01-01',
'end-date': 'today',
'metrics': 'ga:impressions,ga:sessions,ga:pageviews',
'dimensions': 'ga:date'
}

analytics.data.ga.get(gauth, function (err, gaData) {
console.log("err 1234",err)
console.log("gaData ",gaData)
//console.log("ga",Object.keys(gaData))
})
Run Code Online (Sandbox Code Playgroud)

注意 现在的问题是,如果访问令牌没有过期,那么它会给我数据,如果访问令牌过期,那么它会给我400 错误 Invalid grant …

node.js google-api-nodejs-client

5
推荐指数
1
解决办法
7052
查看次数

为什么 google Oauth verifyIdToken(javascript nodejs 版本)不使用客户端机密?

我正在为 SPA js+nodejs 应用程序测试 google singin。我添加了这个:

<script src="https://apis.google.com/js/platform.js" async defer></script>
Run Code Online (Sandbox Code Playgroud)

还有这些:

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">
<div class="g-signin2" data-onsuccess="onSignIn"></div>
Run Code Online (Sandbox Code Playgroud)

在 html5/js 客户端。遵循本指南:

https://developers.google.com/identity/sign-in/web/sign-in

当用户对库进行身份验证时,将获取令牌并将其传递给服务器,如下所述:

https://developers.google.com/identity/sign-in/web/backend-auth

在服务器端 (nodejs) 使用此函数验证令牌:

client.verifyIdToken(
    token,
    CLIENT_ID,
    // Or, if multiple clients access the backend:
    //[CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3],
    function(e, login) {
      var payload = login.getPayload();
      var userid = payload['sub'];
      // If request specified a G Suite domain:
      //var domain = payload['hd'];
    });
Run Code Online (Sandbox Code Playgroud)

我的问题是:client_secret 何时使用?因为我使用 CLIENT_ID 前端从谷歌获取身份验证令牌,然后我使用 CLIENT_ID 服务器端进行令牌验证。我认为可以使用仅在服务器端已知的 client_secret(即 SECRET)来验证令牌,因此没有其他人可以获取令牌来验证该用户。我错过了什么?

node.js google-oauth google-api-nodejs-client google-signin

5
推荐指数
1
解决办法
2997
查看次数

如何避免 Google api Node js 客户端上的 ETIMEDOUT?

我正在使用Google Api Nodejs 客户端,并且经常收到 API 调用超时的情况(我的请求的最大部分是在 Gmail Api 上)。我可以同时执行一些 Google Cloud SQL 请求,因此这似乎不是我的服务器上的网络问题。您可以在下面找到我日志中的一些超时。

{"code":"ETIMEDOUT","errno":"ETIMEDOUT","syscall":"connect","address":"216.58.219.234","port":443}
{"code":"ETIMEDOUT","errno":"ETIMEDOUT","syscall":"connect","address":"216.58.219.202","port":443}
{"code":"ETIMEDOUT","errno":"ETIMEDOUT","syscall":"connect","address":"209.85.201.95","port":443}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以避免这些超时吗?可以指定要检索的字段,这些字段是否可以减少超时量?

我有时会从 google api 收到一些 429 或 500 结果代码,这很好也很正常(根据文档,但这些超时根本不是我所期望的。

javascript google-api node.js google-api-nodejs-client

5
推荐指数
0
解决办法
1187
查看次数

如何使用 JSON 密钥文件在 Node.js 中设置谷歌服务帐户授权?

尝试使用此处定义的服务器到服务器 OAuth 流程:https : //developers.google.com/identity/protocols/OAuth2ServiceAccount

由于我在本地开发环境中运行,因此我在 GCP 中创建了一个服务帐户并使用私钥下载了 JSON 文件,但找不到任何关于如何:1) 加载 json 文件的 Node.js 代码示例) 设置委托凭据(用于 G Suite 域范围授权)

我看过的地方(除了 stackoverflow)是 Google 的 node.js 客户端库的 git wiki,它确实讨论了服务器到服务器的身份验证,但似乎假设您从 appengine 或 google cloud 运行并且不需要加载一个密钥文件:https : //github.com/googleapis/google-api-nodejs-client#service-to-service-authentication

Admin SDK 活动报告 API 有一个 Node 示例,但它使用基于 Web 的流程(假设用户存在):https : //developers.google.com/admin-sdk/reports/v1/quickstart/nodejs

在 Node.js 示例中深埋的是 Directory API 的使用,它似乎以密钥文件作为输入,但是当我尝试在本地运行时,它说 getClient 不是构造函数,并且这个示例仍然没有显示如何设置上下文的 G Suite 管理员用户(通常是将刷新令牌和访问令牌加载到应用程序中时):https : //github.com/googleapis/google-api-nodejs-client/blob/master/samples/directory_v1 /group-delete.js

所以......有人有这样的例子吗?我真的不想切换到 Python 运行时,但 Google 似乎遗漏了有关此主题的重要示例。

google-api-nodejs-client

5
推荐指数
0
解决办法
713
查看次数

如何停止谷歌语音到文本 API 中的流式传输并在需要时重新开始?

现在,在谷歌语音到文本API中,我正在做我想做的一切,除了当我想要的时候停止现在我已经尝试在API中调用函数stop()、pause(),其中八个不起作用

const record = require('node-record-lpcm16');// Imports the Google Cloud client library
const speech = require('@google-cloud/speech');// Creates a client
const client = new speech.SpeechClient();const encoding = 'LINEAR16';
const sampleRateHertz = 16000;
const languageCode = 'en-US';const request = {
  config: {
    encoding: encoding,
    sampleRateHertz: sampleRateHertz,
    languageCode: languageCode,
  },
  interimResults: false,
};// Create a recognize stream
const recognizeStream = client
  .streamingRecognize(request)
  .on('error', console.error) 
  .on('data', data =>
    process.stdout.write(
      data.results[0] && data.results[0].alternatives[0]
        ? `Transcription: ${data.results[0].alternatives[0].transcript}\n`
        : `\n\nReached transcription time limit, press Ctrl+C\n`
    )
  );// Start …
Run Code Online (Sandbox Code Playgroud)

google-api node.js google-api-nodejs-client electron google-speech-to-text-api

5
推荐指数
0
解决办法
666
查看次数

Google Calendar API 从 Google 日历设置获取工作时间数据

我们可以从谷歌日历设置中获取工作时间数据吗?我已经浏览过日历的API

: https: //developers.google.com/calendar/v3/reference/settings/get

但没有得到所需的数据。附上图片以供参考

在此输入图像描述

calendar google-calendar-api google-api-nodejs-client

5
推荐指数
1
解决办法
2869
查看次数

如何通过 google-auth-library 发出发布请求?

我能够成功地向 IAP 后面托管的服务发出 GET 请求,但在以相同方式发出 POST 请求时遇到问题。另外,我找不到任何相同的文档。所有示例似乎都是针对 GET 请求。

google-api google-oauth google-api-nodejs-client

5
推荐指数
1
解决办法
1451
查看次数

如何使用 APIKey 将 Google Cloud Bigquery 与 NodeJS 连接

我正在尝试使用 Node js 在 google bigquaey 中插入、删除、搜索和更新。我已经跟进了google中的所有文档。但没有提到如何连接 - 所以我创建了这个,--

如何将 GCP BigQuery 与 NodeJS 连接。我刚来这地方。任何帮助都会起作用。

我写的代码 -

const {BigQuery} = require('@google-cloud/bigquery');

const mainFunction = () => {
    insertIntoBigQuery("John", "john@gmail.com", "+1-23232344231");
}

async function insertIntoBigQuery(name, email, phone) {
// const insertIntoBigQuery = async(name, email, phone) => {
    const bigqueryClient = new BigQuery();
    // The SQL query to run
    const sqlQuery = "INSERT INTO `p4tyu78.Backend_testing.Test1` VALUES ("+name+ "," +email+","+ phone+")";

    const options = {
        query: sqlQuery,
        // Location must match that of …
Run Code Online (Sandbox Code Playgroud)

node.js google-bigquery google-api-nodejs-client google-cloud-platform

5
推荐指数
1
解决办法
4120
查看次数