LoginSignup
0
0

More than 1 year has passed since last update.

Twitterで自動投稿する雛形-#脱TwitterAPI。

Last updated at Posted at 2023-02-04

エンジニアに悲報としか言えない今回の発表・イーロン・マスク氏って👹

2月9日でTwitterAPIが無料で使えなくなるのでその対応をしないといけない。
そんなエンジニアさんもいらっしゃると思います、お疲れ様です🙇。

APIサービスに月、1万円払えないという会社は中小企業には多いと思います、
それで取引を解消される企業とかもあったりするかも。

そんな方は一個VPSサーバーを構えてNodeJSをインストールして
下記の雛形コードを元にゴニョゴニョしたら何とかなるかも知れません🫠。

因みにこれはchatGPTとの合作だったりします。

  • 動作保証はしません。HTMLコードが変われば動くなります。尚、これは雛形ですので、これに細工をして常時接続でTweetやRTするようにコードを変更しないといけません、もしくは時間を置いてTweetするなど。
node sample.js 'username' 'password' 'テスト投稿'
sample.js
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();
})();
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0