使用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