🖼️

【Dart/Flutter】twitter_api_v2を使ってメディア付きのツイートをする方法

2022/09/02に公開

概要

Twitterでツイートをする際に画像や動画といったメディアを添付する場面が多くあると思いますが、プログラムからこの操作を行うことができればとても便利です。この画像添付の操作を自動化することで、特定のコンテンツを宣伝する際に文字だけのツイートよりも大きな効果を出すことができます。

この記事では、Dart/Flutterライブラリの「twitter_api_v2」を使用して、プログラムから画像付きのツイートを行う方法を紹介します。

twitter_api_v2とは

twitter_api_v2とは、DartFlutterで使用できるTwitter API v2.0をラッピングしたライブラリです。全てのエンドポイントやリクエストパラメータをサポートしているだけではなく、直感的なインターフェースや自動リトライなど、DartとFlutterでTwitter API v2.0を使用した開発を強力にサポートします。

https://github.com/twitter-dart/twitter-api-v2

https://pub.dev/packages/twitter_api_v2

このライブラリについては以前からいくつか記事を書いていますので、以下のリンクを参考にしてください。

https://zenn.dev/kato_shinya/articles/released-twitter-api-v2-dart

https://zenn.dev/kato_shinya/articles/twitter-api-v2-is-listed-in-twitter-official

ライブラリのインストール

まずは、DartまたはFlutterでお馴染みの以下のコマンドを実行してライブラリをインストールします。

Dartの場合:

dart pub add twitter_api_v2

Flutterの場合:

flutter pub add twitter_api_v2

また、必要に応じて以下のコマンドを実行しましょう。

Dartの場合:

dart pub get

Flutterの場合:

flutter pub get

実装

ライブラリのインストールができたら実際に実装してみましょう。結論から始めると、次のコードで特定のメディアをツイートに添付することができます。

import 'package:twitter_api_v2/twitter_api_v2.dart' as v2;

Future<void> main() async {
  final twitter = v2.TwitterApi(bearerToken: 'YOUR_TOKEN_HERE');

  try {
    await twitter.tweets.createTweet(
      text: 'メディア付きのツイートです。',
      media: v2.TweetMediaParam(
        mediaIds: [
            '添付したいメディアのID'
        ],
      ),
    );
  } on v2.TwitterException catch (e) {
    print(e);
  }
}

createTweetメソッドのmedia引数を使用することで、特定のメディアを送信するツイートに添付することができます。TweetMediaParammediaIdsには添付したいメディアのIDを指定してください。

実際にこの機能を使用して作成したツイートが次のものになります。とても簡単ですね。

https://twitter.com/_kato_shinya/status/1564407404267458560

Media ID と Media Key について

Twitterでは、メディアはMedia IDMedia Keyの2つの識別子で管理されており、Twitter API v2.0を使用してメディアを操作する際にはこの2つの識別子に関する理解が必要になります。

例えば、Media IDMedia Keyはそれぞれ次のような文字列です。Twitterにアップロードされたメディア一つ一つにこの2つの識別子がセットで割り振られています。

Media ID Media Key
1029825579531807971 13_1029825579531807971

上記の表を見て気がついた方もいるかもしれませんが、Media Key_以降の文字列がMedia IDです。つまり、Media IDに数値とアンダースコアがプレフィックスとして付与された識別子がMedia Keyになります。

Twitter API v2.0でメディアを操作する際にはこの性質の理解が非常に重要になります。というのも、現在の仕様ではTwitter API v2.0の各エンドポイントから取得できるメディアの識別子はMedia Keyのみであり、実際にメディアを添付したツイートを作成する際にはMedia IDを使用する必要があるためです。

この2つの識別子は混同しやすく間違えやすいためご注意ください。また、メディアに関するより詳細な仕様は以下の公式リファレンスを参照してください。

https://developer.twitter.com/en/docs/twitter-ads-api/creatives/guides/identifying-media

まとめ

この記事ではtwitter_api_v2を使用してツイートにメディアを添付する方法を紹介しました。プログラムからツイートにメディアを添付する機能はとても便利ですので、ぜひご活用ください。

また、twitter_api_v2は他にも多くのエンドポイントをサポートしていますので、Twitter API v2.0を使用したアプリケーションを作成する際にはぜひ使用してください。

貢献者の募集

twitter_api_v2オープンソースですのでどのような方でも開発に貢献することができます。開発リポジトリの公用語は英語にしていますが、日本人の方々も大歓迎ですのでお気軽にIssuePull Requestを作成してください。

また、このライブラリが役に立った場合にGitHub の開発リポジトリスターを付けることや、Pub.devいいねを付けることもよろしくお願いします。これはtwitter_api_v2の開発コミュニティを活性化するためにとても大きな意味があります。

もしなにか疑問がある場合は開発リポジトリのディスカッションにでもスレッドを立てていただければと思います。

https://github.com/twitter-dart/twitter-api-v2

https://pub.dev/packages/twitter_api_v2

スポンサーの募集

オープンソース開発をサポートしてくださるスポンサーを募集しています。少額($1)からの寄付も可能ですので、以下のリンクから是非ご支援ください。

https://github.com/sponsors/myconsciousness

また、この記事にバッジを贈っていただくことでも支援は可能です。

GitHubで編集を提案

Discussion