🐦 Twitter API 1.1 のできないこと
取得不可能なデータ、実装不可能な機能
こんにちは Keisuke です😼
個人で開発している iOS 用 Twitter クライアントアプリ「Hotaru」の開発を通して、現在の Twitter API 1.1 では取得不可能なデータがいくつもあることを知り Twitter さんに絶望したので、愚痴を投げる勢いでまとめていきます。
🙅ユーザの投稿したメディア数を取得できない
公式 Twitter では以下の画像のように、あるユーザが投稿したメディアの総数を見ることができます。
あるユーザの情報を取得するには GET users/show を使います。この API ではユーザの ID・スクリーンネーム・プロフィール文などのデータが取得でき、その中にはフォロー数・フォロワー数・ツイート数・いいね数・リスト数と「数」に関するものも含まれています。しかし、メディアの数は含まれていないので取得できません。
他の取得方法がないか模索しましたが「全てのツイートを取得してメディアの数を数える」のは通信量的にナンセンスですし、結局取得する方法がわからず諦めました。
🙅ユーザの固定されたツイートを取得できない
公式 Twitter には過去に投稿したツイートを1つだけ最上部に固定できる機能がありますが、この固定されたツイートを取得する API が見つかりませんでした。ユーザの情報を取得できる GET users/show にはユーザの最新ツイートが含まれているので期待していたのですが固定されたツイートは含まれていませんでした。
🙅ユーザの誕生日を取得できない
ユーザの情報を取得できる GET users/show を使えばユーザの Twitter 登録日・場所・URL は取得できますが、誕生日だけは含まれていないため取得できませんでした。
🙅アンケートを取得できない
最近の機能なので API は存在しないだろうなとは思っていましたが本当にありません。
自分からアンケートを始めることも、他人のアンケートに答えることもできません。Twitter API 1.1 でアンケートツイートの取得を試みた場合、アンケートではない通常のツイートと同等の情報が返されます。「あるツイートがアンケートを含むかどうか」すらも判断できないため、本文だけのアンケートのないツイートに成り下がります。
Hotaru では「アンケートは公式 Twitter でしか見れません」という旨を表示し、公式 Twitter アプリへ飛ばす処理を書くつもりでしたが、判断材料が見つからず諦めました。
🙅モーメントを取得できない
最近の機能なので、はい。
🙅フォローリクエストをキャンセルできない
ユーザをフォローするときは POST friendships/create を使います。通常は対象のユーザをフォローするだけですが、対象のユーザが鍵付きであった場合、フォローリクエストという扱いになります。しかし、このフォローリクエストをキャンセルするための API が存在しません。
フォローを外すときは POST friendships/destroy を使うのでこれでキャンセルできると期待していましたができませんでした。「フォローしていないユーザのフォローを外す」つまりフォロー状態は何も変化しないという挙動なのでしょう。
POST friendships/create 公式リファレンス
POST friendships/destroy 公式リファレンス
この問題は次の Twitter 公式デベロッパーフォーラムでも議論されています。
Is there any REST API to cancel “Follow Request Sent”?
上記のフォーラムでも、フォローリクエストをキャンセルするための API は存在しないという結論のようです。「ブロックした直後ブロックを解除する」方法も提案されていますが、対象のユーザが自分をフォローしていた場合、そのフォローをも外してしまうので採用しませんでした。
Hotaru では実装を諦めて公式の Twitter アプリに飛ばすだけにし、そこでユーザ自身でキャンセルしてもらう形に妥協しました。
🙅ツイートに送られたリプライを取得できない
例として任天堂のツイートを扱います。見てほしいのは次の箇所で、公式 Twitter では次のように「あるツイートに送られたリプライの数」がわかります。
そして、ツイートの詳細を見るとそのツイートに対して送られたリプライの一覧が見れます。
Twitter API 1.1 ではこの「あるツイートに対して送られたリプライ」を取得することができません。その数も取得できません。🙀
この問題は次の Twitter 公式デベロッパーフォーラムでも議論されています。
View Conversations- API Support
2013 年から始まっているこの話題。開発者の皆さんが API を提供して欲しそうにしている中、6 日前(執筆時現在) に投稿された Twitter からの公式回答は…
There’s no current plan for a conversation API at this time.
😿😿😿😿😿😿😿😿😿😿
フォーラムを読むと GET conversation/show という非公開 API が存在しているようですが、これを公開する予定はないそうです。
🙅公式 Twitter に追いつくことはできない
まとめです。
本記事は Hotaru の開発時に気づいたものしかまとめていないため、他にも Twitter API 1.1 ではできないことが山ほどあるでしょう。
データの取得すらできず、実装することができない機能があることなど、これから開発しようと考えている皆さん、既に開発している皆さんの参考に少しでもなれれば幸いです。
ではでは〜