const needle = require("needle");
const token = process.env.BEARER_TOKEN;
const endpointUrl = "https://api.twitter.com/2/tweets/search/recent";
async function getRequest() {
const params = {
query: "from:アカウント名 -is:retweet -is:reply",
"tweet.fields": "text",
max_results: 取得数,
};
const res = await needle("get", endpointUrl, params, {
headers: {
"User-Agent": "v2RecentSearchJS",
authorization: `Bearer ${token}`,
},
});
if (res.body) {
let tweetText = res.body.data;
let ar = [];
for (let i = 0; i < tweetText.length; i++) {
ar.push(tweetText[i].text.replace(/\r?\n/g, "").replace(/#.*$/, ""));
}
return ar;
} else {
throw new Error("Unsuccessful request");
}
}
getRequest().then((response) => {
let AWS = require("aws-sdk");
AWS.config.update({
region: "us-east-1",
credentials: {
accessKeyId: "",
secretAccessKey: "",
},
});
const comprehend = new AWS.Comprehend();
let array = response;
let params = {
TextList: array,
LanguageCode: "ja",
};
comprehend.batchDetectSentiment(params, (err, data) => {
if (err) {
console.log(err, err.stack);
}
else {
for (let i = 0; i < data.ResultList.length; i++) {
console.log(data.ResultList[i].SentimentScore.Negative);
}
}
});
});
参考文献
needle - npm
Node.jsのHTTPクライアントまとめ2020 - Qiita
axios vs got vs needle vs request | npm trends