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

问题描述 投票:0回答:1

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

我读过那篇文章: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

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

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

谢谢!

javascript node.js express youtube youtube-api-v3
1个回答
0
投票

我和你的问题类似,在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);
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.