使用youtube API和node.js添加youtube评论

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用youtube API和node.js添加youtube评论相关的知识,希望对你有一定的参考价值。

我设法从一个频道获取视频数据,但当它尝试为视频添加评论时,我失败了。所以在某些时候我可以成功读取数据。

我读过那篇文章:https://developers.google.com/youtube/v3/docs/commentThreads/insert

而且我不确定我是否正确地完成了参数。

除了Node.js和Express之外,如果值得一提的话,我正在使用请求承诺包进行承诺。

const optionsComment = {
      method: 'POST',
      uri: 'https://www.googleapis.com/youtube/v3/commentThreads',
      qs: {
        part: 'snippet',
        'snippet.channelId': 'a channel id',
        'snippet.videoId': 'some video id',
        'snippet.topLevelComment.snippet.textOriginal': 'a nice message',
        key: "my key"
      },
      json: true
  };

  rp(optionsComment)
  .then(result=>{
    console.log("result of adding comment:", result);
  })
  .catch(function(err){
    console.log("error during add comment");
    console.log(err);
  });

当我运行代码时,我收到此错误:

添加评论期间出错

{StatusCodeError:401 - {“error”:{“errors”:[{“domain”:“global”,“reason”:“required”,“message”:“Login Required”,“locationType”:“header”, “location”:“授权”}],“代码”:401,“消息”:“需要登录”}} 在新的StatusCodeError

即使我已登录并尝试评论自己的视频,我也会收到此错误消息。

也许有人可以给我一个提示。

谢谢!

答案

我和你的问题类似,在access_token发送qs为我修好了。

'use strict';

let request = require('request');

const sourceId = '< youtube video id>';
const comment_id = 'the comment id';
const comment = 'actual comment';

new Promise((resolve, reject) => {
  request({
    method: 'POST',
    url: 'https://www.googleapis.com/youtube/v3/commentThreads',
    headers: {
      'User-Agent': 'Request-Promise'
    },
    body: {
      "snippet": {
        "videoId": sourceId,
        "channelId": comment_id,
        "topLevelComment": {
          "snippet": {
            "textOriginal": comment
          }
        }
      }
    },
    qs: {
      part: 'snippet',
      access_token: token
    },
    json: true
  }, function (error, response, body) {
    if (error) {
      console.log('body', body);
      console.log('error in when posting comment ', error.stack);
      return reject(error);
    }
    return resolve(body);
  });
});

以上是关于使用youtube API和node.js添加youtube评论的主要内容,如果未能解决你的问题,请参考以下文章

Node JS - Youtube API 是空白的

YouTube API 错误,Node.js

通过 Node.js 快速启动身份验证错误的 Youtube API

如何运行 Youtube Api 视频:插入 (python)

更新 Node.js 后,Node 项目停止工作

动态创建的 iFrame 上的 YouTube iFrame API