目的
お手伝いしてる案件で、TwitterのAPI使ってみたのでメモ APIはRailsで実装した。
方法
Twitterの開発用アカウント作って、自分のアプリケーションのURLを登録する。
下のURLがわかりやすいので、参考に。 qiita.com
この通りにやれば、別のTwitterアカウントから、開発しているTwitterアカウントにDirectMessageを送ると、APIが叩かれる。
APIの中身を実装する。
下はRubyで実装してあるので、この通りにすればとりあえず動いた GitHub - twitterdev/SnowBotDev: A demo illustrating the Twitter Account Activity and Direct Message APIs.
quick_reply っていう項目があって、これにデータを入れて、レスポンスを返すと、DMの下に選択肢が出るので、便利だなと思った。
簡単に説明
注) パラメーターはミスしてるかもなので、実際に実装するときは、SnowBotDevのgithub参考にしてください。
DMが送られると、TwitterからAPIに、以下のパラメータでリクエストが届く。
params = { direct_message_events: { type: 'message_create', sender_id: 'DMを送信したユーザーのID' message_create: { message_data: { text: 'hogehoge' // ここに文字が入ってるときは、直接DMが送られたとき。 quick_reply_response: { metadata: 'hogehoge' // ここに文字が入ってるときは、こちらが提示した選択肢を押したとき } } } } }
このリクエストをみて、下のようなレスポンスを作成する。
{ event: { type: 'message_create', target: { recipient_id: 'DMを送りたいユーザーのID' } message_create: { message_data: { text: 'DM message' // DMで送りたいメッセージを入れる quick_reply: { // ここにデータを入れると選択肢を提示できる。 options: { label: '選択肢に出てくるラベル', description: '選択肢の説明', metadata: '選択肢のIDみたいなもの。この選択肢を押したとき、quick_reply_responceにこの値が入って、再度イベントが送られる。' } } } } } }
このレスポンスを、OAuth認証利用して、TwitterのAPIに送る
https://github.com/twitterdev/SnowBotDev/blob/master/app/helpers/api_oauth_request.rb