Google API 如何从结果中获取一个变量

Posted

技术标签:

【中文标题】Google API 如何从结果中获取一个变量【英文标题】:Google API how do I get one variable from my result 【发布时间】:2021-09-09 22:46:32 【问题描述】:

我想将subscriberCount: '15' 隔离到它自己的变量中,但我在这里所做的一切都是我拥有的所有数据(出于安全原因,有些数据被审查)请尝试帮助我!

代码

const Youtube = require("youtube-api")
    , fs = require("fs")
    , readJson = require("r-json")
    , Lien = require("lien")
    , Logger = require("bug-killer")
    , opn = require("opn")
    , prettyBytes = require("pretty-bytes")
    ;

// I downloaded the file from OAuth2 -> Download JSON
const CREDENTIALS = readJson(`$__dirname/credentials.json`);
 
// Init lien server
let server = new Lien(
    host: "localhost"
  , port: 5000
);
 
// Authenticate
// You can access the Youtube resources via OAuth2 only.
// https://developers.google.com/youtube/v3/guides/moving_to_oauth#service_accounts
let oauth = Youtube.authenticate(
    type: "oauth"
  , client_id: CREDENTIALS.web.client_id
  , client_secret: CREDENTIALS.web.client_secret
  , redirect_url: CREDENTIALS.web.redirect_uris[0]
);
 
opn(oauth.generateAuthUrl(
    access_type: "offline"
  , scope: ["https://www.googleapis.com/auth/youtubepartner-channel-audit https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtubepartner-channel-audit https://www.googleapis.com/auth/youtube.readonly"]
));
 
// Handle oauth2 callback
server.addPage("/oauth2callback", lien => 
    Logger.log("Trying to get the token using the following code: " + lien.query.code);
    oauth.getToken(lien.query.code, (err, tokens) => 
 
        if (err) 
            lien.lien(err, 400);
            return Logger.log(err);
        
 
        Logger.log("Got the tokens.");
 
        oauth.setCredentials(tokens);
 
        lien.end("Eyyy you logged in!");

       // var req = Youtube.videos.insert( );
        function execute() 
        return Youtube.channels.list(
         "part": [
          "statistics"
          ],
          "mine": true,
          "prettyPrint": true
        )
        .then(function(response) 
                // Handle the results here (response.result has the parsed body).
                //console.log("Response", response);
                //console.log(typeof response.data.items);
                //console.log(response.data.items);
                //console.log(result);
                console.log(response.data.items);
                //console.log(response.statistics);
              ,
              function(err)  console.error("Execute error", err); );
        
        execute();
    );
);

来自谷歌的回应:

[
  
    kind: 'youtube#channel',
    etag: '*****',
    id: '*****',
    statistics: 
      viewCount: '506',
      subscriberCount: '15',
      hiddenSubscriberCount: false,
      videoCount: '12'
    
  
]

【问题讨论】:

你想在哪里做任何事? 我在这里没有任何工作 ...在哪里?哪里没用? 您在代码中的哪个位置做了一些不起作用的事情?我看不出应该在哪里完成,所以我要求你指向你想要完成的代码行 response.data.items 是一个数组,从你的问题来看,......所以你需要response.data.items[0].statistics.subscriberCount @DaImTo - 不,谢谢,花了太长时间才获得足够的信息来猜测问题:p 【参考方案1】:

Jaromanda X给出了解决方案in a comment:

response.data.items 是一个数组,从你的问题来看,......所以你需要response.data.items[0].statistics.subscriberCount

【讨论】:

如果您想发表评论作为答案,通常的做法是引用评论(如您所做的那样),并附上评论和用户个人资料的链接,并可能标记答案作为社区 Wiki(您仍然可以在编辑页面中这样做)

以上是关于Google API 如何从结果中获取一个变量的主要内容,如果未能解决你的问题,请参考以下文章

从 google book api 获取缩略图到 python 变量

如何从 google gmail js api 获取小于 10 MB 的消息?

在 joomla 组件中传递获取变量

如何从 Google Places API 获取地点描述

如何使用 Google Bigquery 的 Java API 以 Json 形式获取查询结果

如何获取 Google Adwords api 的 developerToken?