【Dart/Flutter】twitter_api_v2を使ってメディア付きのツイートをする方法
概要
Twitterでツイートをする際に画像や動画といったメディアを添付する場面が多くあると思いますが、プログラムからこの操作を行うことができればとても便利です。この画像添付の操作を自動化することで、特定のコンテンツを宣伝する際に文字だけのツイートよりも大きな効果を出すことができます。
この記事では、Dart/Flutterライブラリの「twitter_api_v2」を使用して、プログラムから画像付きのツイートを行う方法を紹介します。
twitter_api_v2とは
twitter_api_v2とは、DartとFlutterで使用できるTwitter API v2.0をラッピングしたライブラリです。全てのエンドポイントやリクエストパラメータをサポートしているだけではなく、直感的なインターフェースや自動リトライなど、DartとFlutterでTwitter API v2.0を使用した開発を強力にサポートします。
このライブラリについては以前からいくつか記事を書いていますので、以下のリンクを参考にしてください。
ライブラリのインストール
まずは、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
引数を使用することで、特定のメディアを送信するツイートに添付することができます。TweetMediaParam
のmediaIds
には添付したいメディアのIDを指定してください。
実際にこの機能を使用して作成したツイートが次のものになります。とても簡単ですね。
Media ID と Media Key について
Twitterでは、メディアはMedia IDとMedia Keyの2つの識別子で管理されており、Twitter API v2.0を使用してメディアを操作する際にはこの2つの識別子に関する理解が必要になります。
例えば、Media IDとMedia 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つの識別子は混同しやすく間違えやすいためご注意ください。また、メディアに関するより詳細な仕様は以下の公式リファレンスを参照してください。
まとめ
この記事ではtwitter_api_v2を使用してツイートにメディアを添付する方法を紹介しました。プログラムからツイートにメディアを添付する機能はとても便利ですので、ぜひご活用ください。
また、twitter_api_v2は他にも多くのエンドポイントをサポートしていますので、Twitter API v2.0を使用したアプリケーションを作成する際にはぜひ使用してください。
貢献者の募集
twitter_api_v2はオープンソースですのでどのような方でも開発に貢献することができます。開発リポジトリの公用語は英語にしていますが、日本人の方々も大歓迎ですのでお気軽にIssue
やPull Request
を作成してください。
また、このライブラリが役に立った場合にGitHub の開発リポジトリにスターを付けることや、Pub.dev でいいねを付けることもよろしくお願いします。これはtwitter_api_v2の開発コミュニティを活性化するためにとても大きな意味があります。
もしなにか疑問がある場合は開発リポジトリのディスカッションにでもスレッドを立てていただければと思います。
スポンサーの募集
オープンソース開発をサポートしてくださるスポンサーを募集しています。少額($1)からの寄付も可能ですので、以下のリンクから是非ご支援ください。
また、この記事にバッジを贈っていただくことでも支援は可能です。
Discussion