Twitter API v2.0をラッピングしたDart/Flutterライブラリを開発しました
Dart/Flutter ライブラリ「twitter_api_v2」 の紹介
twitter_api_v2 とは
twitter_api_v2
は、Dart VM
上で動作する Twitter API v2.0 をラッピングしたライブラリです。
Dart/Flutter アプリで Twitter API v2.0 の諸機能をとても簡単に使うことができるように設計開発を行いました。
初期ビルドを Pub.dev にアップロードしてまだ数週間程度ですが、既に国内外を問わず様々な方々から反響をいただいております。ありがとうございます。
使い方
この記事はあくまでもライブラリの紹介なので、基本的な使い方のみを記述します。とは言っても、このライブラリは先述したようにとても簡単に扱えるように設計されているため、一度触れていただければ諸機能の使い方は理解していただけると思います。
前提条件
- 少なくとも Twitter Developer で発行された App-Only のベアラートークン、または
Consumer Key
とConsumer Secret
が必要です。 - App-Only のベアラートークンではユーザー権限が必要な操作は行えません。
- OAuth 1.0a 方式での認証もサポートしていますが、一部のエンドポイントでは OAuth 1.0a 方式でのアクセスは拒否されます。
ライブラリのインストール
Dart
と Flutter
でお馴染みの以下のコマンドでライブラリを pubspec.yaml
に追加します。
Dart:
dart pub add twitter_api_v2
dart pub get
Flutter:
flutter pub add twitter_api_v2
flutter pub get
インポート
twitter_api_v2
を使うためのインポートは以下の一行だけで大丈夫です。
import 'package:twitter_api_v2/twitter_api_v2.dart';
検索したツイートにいいねを付ける
import 'package:twitter_api_v2/twitter_api_v2.dart' as v2;
void main() async {
final twitter = v2.TwitterApi(
// ベアラートークンの指定は必須です。
// App-OnlyまたはOAuth 2.0 PKCEで取得したトークンを指定してください。
bearerToken: 'YOUR_TOKEN_HERE',
// OAuth 1.0a方式での認証もオプションとして提供しています。
// しかし、この方式では一部のエンドポイントでアクセスを拒否されるため注意してください。
oauthTokens: v2.OAuthTokens(
consumerKey: 'YOUR_CONSUMER_KEY_HERE',
consumerSecret: 'YOUR_CONSUMER_SECRET_HERE',
accessToken: 'YOUR_ACCESS_TOKEN_HERE',
accessTokenSecret: 'YOUR_ACCESS_TOKEN_SECRET_HERE',
),
);
try {
final me = await twitter.usersService.lookupMe();
// 検索クエリにはハッシュタグも使用できます。
final tweets = await twitter.tweetsService.searchRecent(query: '#ElonMusk');
// 検索したツイートにいいねを付けます。
final response = await twitter.tweetsService.createLike(
userId: me.data.id,
tweetId: tweets.data.first.id,
);
print(response);
} on v2.TwitterException catch (e) {
// 例外オブジェクトには例外発生時のHTTPレスポンスが格納されています。
print(e.response.headers);
print(e.response.body);
}
}
Awesome Modern Twitter API に選ばれました
Twitter
社の Developer Advocate
である Andy Piper が私が開発したtwitter_api_v2
を Dart/Flutter コミュニティにおける Awesome Modern Twitter API として選んでくれました。
Dart/Flutter コミュニティとしては現時点(2022/05/19)で私が作成した twitter_api_v2
以外で選択されたライブラリは存在しないため、大変な名誉だと考えています。
また、 Andy Piper は上記以外にも様々な形で私が作成した twitter_api_v2
を世界に普及させるためのサポートをしてくれており、ここまでこのライブラリが世界に拡散され認知されることになったのは間違いなく彼のおかげです。
Thank you Andy!
Google の 開発者からメッセージをいただきました
Dart/Flutter 開発の総本山といえば Google ですが、その Dart/Flutter 開発のコアメンバーである Tim Sneath からメッセージをいただきました。
Google OSS
にプルリクエストを送った際に何度か彼にレビューをしてもらった経験はあるのですが、ここまで直接的なコンタクトは初めてなので衝撃を受けました。正直なところ、通知を見たときには震えました。
Thank you Tim!
貢献者の募集
twitter_api_v2
はオープンソースですのでどのような方でも開発に貢献することができます。開発リポジトリの公用語は英語にしていますが、日本人の方々も大歓迎ですのでお気軽に Issue
や Pull Request
を作成してください。
また、このライブラリが役に立った場合にGitHub の開発リポジトリにスターを付けることや、Pub.dev でいいねを付けることもよろしくお願いします。これは twitter_api_v2
の開発コミュニティを活性化するためにとても大きな意味があります。
もしなにか疑問がある場合は開発リポジトリのディスカッションにでもスレッドを立てていただければと思います。
また別件ですが、私は Dart 言語でジョブスケジューリングを可能にするフレームワーク Batch.dart
を開発しています。Batch.dart
に関しては過去に以下の記事を書きましたので参考にしてください。
スポンサーの募集
オープンソース開発をサポートしてくださるスポンサーを募集しています。少額($1)からの寄付が可能ですので、以下のリンクからご支援ください!
また、この記事にバッジを贈っていただくことでも支援は可能です。
Discussion
少額ですが、いくらかお支払いするので、ぜひインスタ、TikTokの方でもapi連携が簡単にできるライブラリを作って欲しいです...!笑