TwitterのUser Stream APIが8月から段階的に廃止され、家のRaspberry Piから毎日送信していたダイレクトメッセージも9月半ばになってついに使えなくなってしまった。そこで新しいAPIでダイレクトメッセージを送る方法を調べてみた。
Raspberry Pi (Raspbian Stretch)
※事前にTwitterの開発者向けのページでTwitter APIの利用に必要なAPIキーやトークンなどを取得しておく。
User Stream APIのダイレクトメッセージの代替はPOST direct_messages/events/new(message_create)。ただし、リクエスト方法が以前のAPIと変わっていて、Raspberry PiとPython3とTwitterでOCRボットを作るのようにrequests_oauthlibを使ってダイレクトメッセージを送信する方法は使えない。
direct_messages/events/new(message_create)ではcurlコマンドを使用する方法の他にtwurlを使う方法が紹介されている。twurlはTwitter API用に作られたcurl風のコマンドラインツールで、今回はこれを使ってダイレクトメッセージを送信してみる。
twurlはRubyで作成されているようで、まずはRubyとRubyのパッケージ管理システムをインストールする。
続いてtwurlのインストール。
APIを使用するために、コンシューマーキーとコンシューマーシークレットでTwitterアカウントの認証を行う。以下のコマンドを実行して表示されるURLにアクセスするとPINが表示されるので、それをコマンドラインに入力する。「Authorization successful」と表示されたらOK。ちなみに、認証された情報は「.twurlrc」というファイルに保存される。
以下のコマンドで認証済みのアカウント一覧が表示される。
これでtwurlを使う準備ができた。
以前のAPIではスクリーンネームでダイレクトメッセージを送信できたが、新しいAPIではユーザーIDが必要なので確認しておく。
以下のコマンドで取得できるメンションタイムラインで自分のユーザーIDを確認できる。取得結果の「..."user_mentions":[{"screen_name":"スクリーンネーム","name":"ネーム","id":ユーザーID,...」に含まれるidが目的のユーザーID。
環境
Raspberry Pi (Raspbian Stretch)
※事前にTwitterの開発者向けのページでTwitter APIの利用に必要なAPIキーやトークンなどを取得しておく。
User Stream APIのダイレクトメッセージの代替
User Stream APIのダイレクトメッセージの代替はPOST direct_messages/events/new(message_create)。ただし、リクエスト方法が以前のAPIと変わっていて、Raspberry PiとPython3とTwitterでOCRボットを作るのようにrequests_oauthlibを使ってダイレクトメッセージを送信する方法は使えない。
direct_messages/events/new(message_create)ではcurlコマンドを使用する方法の他にtwurlを使う方法が紹介されている。twurlはTwitter API用に作られたcurl風のコマンドラインツールで、今回はこれを使ってダイレクトメッセージを送信してみる。
twurlはRubyで作成されているようで、まずはRubyとRubyのパッケージ管理システムをインストールする。
続いてtwurlのインストール。
APIを使用するために、コンシューマーキーとコンシューマーシークレットでTwitterアカウントの認証を行う。以下のコマンドを実行して表示されるURLにアクセスするとPINが表示されるので、それをコマンドラインに入力する。「Authorization successful」と表示されたらOK。ちなみに、認証された情報は「.twurlrc」というファイルに保存される。
以下のコマンドで認証済みのアカウント一覧が表示される。
これでtwurlを使う準備ができた。
ユーザーIDの確認
以前のAPIではスクリーンネームでダイレクトメッセージを送信できたが、新しいAPIではユーザーIDが必要なので確認しておく。
以下のコマンドで取得できるメンションタイムラインで自分のユーザーIDを確認できる。取得結果の「..."user_mentions":[{"screen_name":"スクリーンネーム","name":"ネーム","id":ユーザーID,...」に含まれるidが目的のユーザーID。
0 件のコメント:
コメントを投稿