0
0

はじめに

nodejsで画像付きのツイートを調べてみる。
色々サイトを参考にするが、意外と動かない。
Twitter APIの1.1と2.0が混在していて何がなんだか。aiに聞いてもぐふわふわしちゃう。

要するに画像のアップロードは1.1じゃないとできない。
だけど、ツイート1.1ではできず、2.0じゃないとできない。

1.1でアップロード。アップロードが完了するとmedia idを発行してくれる。
そのmedia idをつけて2.0でアップロードという方法らしいです。

twitterManager.ts
import {TwitterApi, TwitterApiReadWrite} from 'twitter-api-v2';
export class TwitterManager {
    constructor() {
    }
    public tweet = async (message:string, filePath:string):Promise<void> =>
    {
        const client:TwitterApi = new TwitterApi({
            appKey: process.env.API_KEY,
            appSecret: process.env.API_KEY_SECRET,
            accessToken: process.env.ACCESS_TOKEN,
            accessSecret: process.env.ACCESS_TOKEN_SECRET,
        });
        const twitterClient:TwitterApiReadWrite = client.readWrite;
        try {
            const mediaId:string  = await twitterClient.v1.uploadMedia(filePath);
            await client.v2.tweet(
                { text: message, media: { media_ids: [mediaId] } }
            );
        } catch (e) {
            console.log(e)
        }

    }
}

まとめ

twitter api2.0で画像をアップロードする準備しているようです。
この話もいつまで持つことやら。
一気に両方送れた方がいいよね。

参考

Make a Twitter bot with Node.js and the v2 Twitter API in under 20 minutes
https://www.youtube.com/watch?v=LCydSB7JcHw

0
0
0

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