【问题标题】:YouTube Search Node.js with Google API带有 Google API 的 YouTube 搜索 Node.js
【发布时间】:2015-09-23 02:28:11
【问题描述】:

我正在尝试使用 Node 中的 Google API 进行 YouTube 搜索。

我将其用作教程:

https://github.com/google/google-api-nodejs-client/#google-apis-nodejs-client

我有一些基础工作

var google = require('googleapis');

var YOUTUBE_API_KEY = "--YOUR_API_KEY";

var youtube = google.youtube('v3');

var requests = youtube.search.list({part:'snippet', q: 'cats', maxResults: 10});

当我调用它时,我会收到以下消息:

Error: Daily limit for Unauthenticated Used Exceeded.

现在,这显然是因为我没有使用我的 API 密钥。但是,我找不到任何可以向您展示 API 密钥如何用于 Node 的资源。

我找到的任何东西都告诉我做这样的事情:

var YOUTUBE_CLIENT_KEY = '';
var CLIENT_SECRET = '';
var REDIRECT_URL = '/';

var OAuth2 = google.auth.OAuth2;
var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
google.options({auth: oauth2Client});

接着是我的“youtube.search.list...”。

这种方法的问题是我知道从哪里得到:

  • CLIENT_ID
  • CLIENT_SECRET
  • REDIRECT_URL

我在网上的任何地方都找不到这些。我尝试只遵循 Javascript 教程,因为 Node 显然使用 Javascript,尽管它总是需要 oAuth2... 这需要上面的三件事。

任何帮助/提示?

【问题讨论】:

  • 您是否检查了自述文件中的“使用 API 密钥”会话?发出请求时,您必须使用 keyauth 参数传递 API 密钥。
  • 哇,我觉得有点傻。这确实使我可以查询,尽管它只是给了我一个巨大的 JSON 对象。我不知道它是否真的包含可能的 youtube 视频,或者它似乎没有。
  • 您在 Google Developers Console 中获得 CLIENT_ID 和 SECRET:console.developers.google.com/project,一旦您在其中创建项目。
  • @limekin 我只能看到一个项目 ID。当我转到 APIs & auth > Credentials 时,也没有任何秘密。此外,我发现它提供了一个 URL,其中包含查询信息的 JSON。尽管有可能我在初始 JSON 对象中的某处丢失了该信息吗?还是我只需要使用该 URL 来获取信息?
  • 啊,您可以查看 YouTube 数据 API 的参考,了解您可以发送和接收的内容。由于您在这里尝试列表检查列表:developers.google.com/youtube/v3/docs

标签: javascript node.js api youtube


【解决方案1】:

您应该在 auth 参数中输入 api 密钥。根据https://github.com/google/google-api-nodejs-client/#google-apis-nodejs-client 示例文档,这是正确的做法。

var google = require('googleapis');
var youtube = google.youtube({
   version: 'v3',
   auth: "your-api-key"
});


youtube.search.list({
    part: 'snippet',
    q: 'your search query'
  }, function (err, data) {
    if (err) {
      console.error('Error: ' + err);
    }
    if (data) {
      console.log(data)
    }
  });

谢谢

【讨论】:

  • 如果遇到错误,试试这个:const {google} = require('googleapis');
  • 现在更新为 var google = require('googleapis'); var youtube = new google.youtube_v3.Youtube({ version: 'v3', auth: KEY }); youtube.search.list({ part: 'sn-p', q: 'channelId=UCJrDMFOdv1I2k8n9oK_V21w' }, function (err, data) { if (err) { console.error('Error: ' + err); } if (data) { console.log(data) } });
【解决方案2】:

我花了一段时间才找到这一点,但我是 node.js 和 googleapis 的初学者,所以如果其他人想扩展这个答案,他们可以。

我相信只需使用 Simple API 密钥进行设置,只是警告您应该只将此密钥保留在服务器端。千万不要把这把钥匙泄露出去,否则会被滥用!

var googleapis = require('googleapis');
googleapis.client.setApiKey('YOUR API KEY');

通过https://developers.google.com/api-client-library/javascript/features/authentication找到这个 在使用 API 密钥进行简单访问

【讨论】:

    猜你喜欢
    • 2015-09-05
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2014-04-22
    • 2013-12-26
    • 1970-01-01
    相关资源
    最近更新 更多