[{PageViewPlugin}] [Emergency Situation Sharing Tool] !!!Abstract とにかくAndroidアプリケーションからできるだけRealtimeにTweetを取得できるように頑張ります。 !!!Topics !!きっかけ:215 Bad Authentication data |2018年7月に何かが変わって、APPSのページ[1]で”apply for a Twitter developer account ”をしないと新しいアプリが登録できなくなった。アカウントを登録しなおして、Twitter APIでのアプリを再登録したら、新たにいろいろ登録しないといけなくなって、あげくにいままで使えていたTimeline取得の部分が動かなくなった。ちょっと調査。エラーとしては、 {{{ "errors": [{ "code": 215, "message": "Bad Authentication data." }] }}} |ちゃんと認証されていないということか。Oauthの部分がちゃんと動いていないのかな。 !!Webhook Twitter Application まずは、WebhookでFilterされたTweetの一覧を簡単に表示するWebアプリケーションを作ることを目指してみよう。 *なんとかWebhookでリアルタイムにTimelineが取得できないかなー |あとで読む[2][4] *Webhook by [Node.js] |自分の理解では、Webhookを登録するとTwitter側がターゲットとして設定するアドレスに何かJSONか何かを投げてくれると理解。そのほうが確かにTwitter側のサーバの負荷は、減るような気がする。受けるのをNodejsにするか、Jerseyにするか。。まずは、[Node.js]にしてみるか。よって[2]に従いまずやってみる。 {{{ { "errors": [ { "code": 200, "message": "Forbidden." } ] } }}} |おっと、[2]をよく読むとwebhookアドレスってHTTPSしか許可していないような気がする。それって。。。ちょっとかんがえないと。Jerseyか。。。あと、Callback URLの設定を見直してみるか。 *Jersey |[Web Service]で少し紹介しているが、Jerseyを使ってTomcatアプリとして、Webサービスを実装。Twitterから求められるハッシュして返す部分で必要になるHMACについては、要求内容は[6]を、実装方法は[3]や[5]を参照。作ったソースは[https://github.com/tateshitah/webhook]参照。 |お!できた。 {{{ { "id": "******************", "url": "https://braincopy.org/{web app name}/{application path}/{path}", "valid": true, "created_timestamp": "2018-10-17 00:19:47 +0000" } }}} |"https://api.twitter.com/1.1/account_activity/all/{env name}/webhooks.json?url=https%3A%2F%2Fbraincopy.org%2F{web app name}/{application path}/{path}"のenv nameのところをAccount Activity APIのSandboxに作ったアプリケーションのApp Nameを使っていたが、Dev environment labelを使うべきだった。[{Image src='Twitter Account Activity API/sandbox.png' width='600'}] |なんかここでSubscriptできるのって、自分のアカウントの動きのみで、欲しかった他の人のツイートをリアルタイムで受け取ることはできないような気がしてきた。 !!!Reference #[#1]Twitter, Inc., 2018, Twitter Apps, [https://apps.twitter.com/] #[#2]sbtseiji, 2018年06月10日, TwitterのAccount Activity APIとwebhookを使用する, [https://qiita.com/sbtseiji/items/7957de5db0987d9a6891] #[#3]@takaki@github, 2016年07月06日, HMACをいろんな言語で, [https://qiita.com/takaki@github/items/8665e6c518e377840495] #[#4]@Fushihara, 2018年05月17日, TwitterのAccount Activity APIを叩くnodejsコード, [https://qiita.com/Fushihara/items/79913a5b933af15c5cf4] #[#5]andypiper, 20 Jun 2017, CRC_Example.java, [https://gist.github.com/andypiper/1aa7ed86429747bb025a4c3112669d0e] #[#6]Twitter, Inc., 2018, Securing webhooks, [https://developer.twitter.com/en/docs/accounts-and-users/subscribe-account-activity/guides/securing-webhooks]