Twitterで自動投稿する雛形-#脱TwitterAPI。
2023.02.05
おはようございます、この記事はQiitaに投稿したもののと同じ内容になります。
エンジニアに悲報としか言えない今回の発表・イーロン・マスク氏って👹
2月9日でTwitterAPIが無料で使えなくなるのでその対応をしないといけない。
そんなエンジニアさんもいらっしゃると思います。
APIサービスに月、1万円払えないという会社は中小企業には多いと思います、それで取引を解消される企業とかもあったりするかも。
そんな方は一個VPSサーバーを構えてNodeJSをインストールして下記の雛形コードを元にゴニョゴニョしたら何とかなるかも知れません。🫠
因みにこれはchatGPTとの合作だったりします。
- いつまで動作するかは保証しません。尚、これは雛形ですので、これに細工をして常時接続で
- TweetやRTするようにコードを変更しないといけません。もしくは時間を置いてTweetするなど。
node sample.js 'username' 'password' 'テスト投稿'
const puppeteer = require('puppeteer');
const [username, password ,tw] = process.argv.slice(2);
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://twitter.com/login');
await page.waitForTimeout(3000);
await page.waitForSelector('input[autocomplete="username"]');
await page.type('input[autocomplete="username"]', username);
const divs = await page.$$('div[role="button"]');
await divs[2].click();
await page.waitForTimeout(3000);
await page.waitForSelector('input[autocomplete="current-password"]');
await page.type('input[autocomplete="current-password"]', password);
await page.waitForSelector('div[data-testid="LoginForm_Login_Button"]');
await page.click('div[data-testid="LoginForm_Login_Button"]');
await page.waitForNavigation();
console.log('Login successful');
await page.waitForTimeout(3000);
await page.waitForSelector('div[data-testid="tweetTextarea_0"]');
await page.click('div[data-testid="tweetTextarea_0"]');
await page.waitForSelector('div[data-testid="tweetTextarea_0"]');
await page.type('div[data-testid="tweetTextarea_0"]',tw);
await page.waitForTimeout(3000);
await page.waitForSelector('div[data-testid="tweetButtonInline"]');
await page.click('div[data-testid="tweetButtonInline"]');
console.log('Tweet posted');
await browser.close();
})();
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
async, autocomplete, await browser.close, await browser.newPage, await page.goto, await page.waitForSelector, await page.waitForTimeout, ChatGPT, const, data-testid, div, headless, input, nodejs, password, qiita, require, tw, TwitterAPI, username,
いろいろエディタやIDEを試してみてこれが良いかなと。
2018.11.23
IDEとエディタの境目あたりで言えばATOMかVisual Studio Codeですね。
IDEでPHPを使用するならばNetBeansかなと思います。
ATOMに関してはいろいろ試してみてこれだけのプラグインをインストールすれば
それなりに開発しやすいですよ。
auto-encoding
autocomplete
japanese-menu
linter-php
v-bootstrap4
これを入れてあとはPHPで開発するならばPHPのインストールも
お忘れなく。
ちなみにVisual Studio Codeの方が安定しています。
間違いなくシェアはこちらのほうが多いです。
会社でもVisual Studio Codeを使う人が多くなってきています。
サクサク動くので使用しやすいですね。
Visual Studio Codeでも上記と同じようなことがプラグインや
基本設定から可能です。
特に開発環境がUTF-8だけではない環境の方は
基本設定のここをONにしてあげると便利です。
“files.autoGuessEncoding”: true
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
4, 8, ATOM, auto-encoding, autocomplete, autoGuessEncoding, Code, files, IDE, japanese-menu, linter-php, NetBeans, ON, php, Studio, true, UTF-, v-bootstrap, Visual, あげる, あたり, あと, いろいろ, インストール, エディタ, お, かな, ここ, こちら, こと, これ, これだけ, サクサク, し, シェア, それなり, ちなみに, ない, プラグイン, やすい, 上記, 人, 会社, 使う, 使用, 便利, 入れ, 動く, 可能, 同じ, 基本, 境目, 多い, 多く, 安定, 忘れ, 思い, 方, 特に, 環境, 良い, 言え, 設定, 試し, 開発, 間違いなく, 関し,