我目前正在開發一個 Twitter 機器人。我現在正在嘗試使用 NPM 的twitter-v2和 Webpack 5.74.0 和 NodeJS 的最新版本發布一條帶有我的帳戶設定的 Tweet 以使用Twitter API v2 。
為了開始作業,我安裝了 NPM 的node-polyfill-webpack-plugin,因為它看起來像是為 Webpack <5 撰寫的相當古老的代碼,沒有它就無法作業。我也在使用 Webpack來測驗機器人twitter-v2serve
這是我使用的測驗代碼twitter-v2:
const Twitter = require('twitter-v2')
//or import {Twitter} from 'twitter-v2' ?
...
const client = new Twitter({
consumer_key: [My API Key],
consumer_secret: [My API Key Secret],
access_token_key: [My Access Token],
access_token_secret: [My Access Token Secret]
})
const params = {
text:"test"
}
const urlParams = {}
const {data} = await client.post('tweets',params,urlParams)
console.log(data)
據我了解,來自twitter-v2檔案和Twitter API 的 POST doc,其中client.post(path, body, urlParams):
path是 API 的端點(此處為“推文”)body是JSON 正文引數(這里因為我只想發推文“測驗”,是{text:"test"},還是{"text":"test"}?)urlParams是端點之后 URL 中的引數,但是我認為它不正確,因為POST /2/tweets不需要這個,它更多的是DELETE /2/tweets需要一個(/id:引數)
但是,當我啟動本地服務器(使用webpack serve --open --config [My config file])時,控制臺中會顯示以下錯誤:
Uncaught (in promise) TypeError: url_1.URL is not a constructor twitter.js:50
它來自包中的以下幾行:
const url_1 = require("url");
...
async post(endpoint, body, parameters) {
const url = new url_1.URL(`https://api.twitter.com/2/${endpoint}`);
...
}
我不知道如何解決這個錯誤,我在互聯網上沒有找到太多東西。
從我讀到的內容來看,這const url = new url_1.URL(..)是一種古老的做事方式,這也許就是它無法作業的原因。有沒有辦法在不接觸包源代碼的情況下修復它,或者我應該放棄它并手動進行身份驗證(我不太了解)?
感謝您的幫助。
uj5u.com熱心網友回復:
twitter-v2已棄用,Twitter SDK是一個更好的選擇。感謝Andy Piper指出這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/522641.html
上一篇:Electron模板(Typescript Webpack)中的這個ElectronForgeERROR是什么?
下一篇:反應樣式的條件類名稱設定
