Twitter連携アプリの権限とやむを得ない事情について理解しておこう
【追記 2019-08-17】 2019年8月16日以降、DMを送信する場合にも「Read, Write and Access direct messages」の権限が必要になりました。
よく誤解されてるのですが、Meity には Twitter のプロフィールを更新する機能や、Twitter で誰かをフォローするような機能は実装していません。しかし Twitter の仕様上、ツイートの投稿やDMの送信機能だけを利用したい場合であってもアプリケーションの連携画面に次のように表示されているため、そのように誤解されてしまうというのが現状です。
↑ 「できる」と書いてあってもそのアプリが実装しているとは限らない。
なぜこのような仕様になっているのか、アプリケーション開発者でなければ分からないことだと思いますので、改めて説明しておきたいと思います。
Twitter 連携アプリケーションに与えられる 3 つの権限レベル
Twitter と連携するアプリケーション (以下、連携アプリ) を開発者が開発する際には、「この連携アプリはTwitter上のデータに対して何ができるか?」という権限を決める必要があります。
その権限には3段階あって、
- Read only (読み込み)
- Read and Write (読み込みと書き込み)
- Read, Write and Access direct messages (読み込み、書き込み、DMの閲覧) (2019年8月16日以降は +DMの送信)
というものです。とてもざっくりしています。
↑ このような画面で開発者自身が選択しています。
「Read only」では Twitter 上のデータの閲覧のみができます。そのユーザーのタイムラインを読み込んだり、プロフィールを読み取ったり、フォロー中のユーザーリストを取得したりといった、「Twitter 上のデータに変更を加えない操作」に対する権限が与えられます。ツイートの投稿機能などを有さない連携アプリは通常この権限を選択します。
↑ 「Read only」権限を選択した連携アプリの許可画面。
その一方で「Read and Write」の権限を選択すると、Read only の権限に加えて「Twitter 上のデータに変更を加える操作」が連携アプリから可能になります。ツイートの投稿だけでなく、プロフィールの更新、誰かをフォローすること、DMを送信することもできます。そして、たとえツイートの投稿機能だけを使いたいだけであっても、連携アプリはこの権限を選択しなければなりません。
↑ 「Read and Write」権限を選択した連携アプリの許可画面。
なお、最後の「Read, Write and Access direct messages」の権限は、上述の「Read and Write」の権限に加えてダイレクトメッセージの閲覧と削除が連携アプリから可能になります。(2019年8月16日以降はDMの送信にもこの権限が必要になりました。)
↑ 「Read / Write and Access direct messages」権限を選択した連携アプリの許可画面。
権限にはこの3種類しかないというのが大事なところです。このデータの読み込みはできないようにしたいとか、この操作とこの操作は使えないようにしたいといったことは、ユーザーからもアプリ開発者からもできないというのが現状です。
Meity では、メンバーへのお知らせ機能で使うリプライを投稿する機能や、ダイレクトメッセージを自動送信する機能を実装しているため「Read and Write」の権限が必要です(2019年8月16日以降は「Read, Write and Access direct messages」の権限が必要になりました)。そして上述の通り「Read and Write」の権限にはプロフィールの更新や、誰かをフォローする権限まで含まれているため、結果としてアプリケーションの許可画面には「フォローしている人を見る、新しくフォローする」とか「プロフィールを更新する」といった未実装の項目までも表示されてしまい、あらぬ誤解を受けてしまうのです。開発者としてはツライところです。
とはいえ、このようなざっくり権限しか用意されていない状況に加えて怪しいスパムアプリも多く出回っているという現状もあるため、上記の権限にしたがって「連携アプリは何をすることができるか?」ということをユーザーが正しく知っておくのは大事なことです。あわせて、こういったやむを得ない事情があるということも知っておいてもらえると嬉しいです。
コメントを残す