TwitterAPIのアプリケーションタイプ(アクセス権うんたら)及び、ユーザへの説明(?)がどうとかいう話です。
大分前に、Twitter歴診断というTwitter連携サービスが「危険」だと騒がれている「その理由」について納得出来ないという話。という記事を書きました。
その記事に対してChamiu_ITさんが以下のような言及をしていらっしゃいました。
「Otapps – ブログ書きました。」 https://t.co/zIEkuJFbZn への答えとして記事を書いた。- Do Not Track Me – Twitterのアプリケーション認証の権限はどんぶり仕様過ぎる http://t.co/5ZtKuFBUpH
— ChaMiu (@Chamiu_IT) December 4, 2013
ちなみに私は、上記の「Twitter歴診断という〜〜」(略)という記事を書くよりも以前に、Chamiu_ITさんに「Twitterのアプリケーションタイプについてご説明」するのに「とてもとても苦労」して「とてもとても迷惑」した事があります。
というより、上述している「Twitter歴診断という〜〜」(略)という記事を書いた動機の一つとしてChamiu_ITさんに対するアプリケーションタイプに関する説明にとてもとても苦労したという経験が挙げられます。
「Twitter歴診断という〜〜」(略)からもリンクしていますが、その苦労の詳細はTwitter関連アプリのユーザにも知っておいて頂きたいTwitterのOAuthの話。をご覧下さい。
さて、ネトゲで忙しい中、時間をかけて、アプリケーションタイプについて「ご説明」したにも関わらず、なかなか理解して下さらなかった、Chamiu_ITさんが、どのような「答え」をお出しになったのかと、Chamiu_ITさんの記事を覗いてみました。
以下、自称PG・SE・PM経験者であらせられるChamiu_ITさんの「答え」とやらから、一部引用します。
Read only
タイムラインの読み込みなど、Twitterの情報を取得する場合のみが目的の場合に設定します。つぶやきやDMの送信、フォローしたりなどのデータの更新は行えません。(=タイムラインのツイートを見る)Read and Write
データ取得の他につぶやきやフォローなどのデータを更新する操作を行う場合に設定します。DMに関する操作は行えません。(=タイムラインのツイートを見る、フォローしている人を見る。新しくフォローする、プロフィールを更新する。ツイートする。)Read, Write and Access direct messages
全ての機能にアクセスできる権限です。(=タイムラインのツイートを見る。フォローしている人を見る、新しくフォローする。プロフィールを更新する。ツイートする。ダイレクトメッセージを見る。Twitterのパスワードを見る。)()内は当方が追記したが、このように、Read only、Read and Write、6個の権限が組み合わされて、連携アプリケーション側に許可される。個別の権限と連携させようとしているアプリケーションの振る舞いが理解できたとして、権限を組み合わせた振る舞いを行う/行わないことも理解できるだろうか?
つまり、Twitterアプリケーション連携機能の権限付与はどんぶり仕様であり、連携するアプリケーション側からユーザに対して説明を怠けているのだ。
Twitterで選択可能である、各アプリケーションタイプで利用可能となる権限について、他所のブログを参照し、ご自身で追記なさっているようです。
でも、この追記が「問題」です。
Read, Write and Access direct messagesに関する括弧書きについてですが…。
「Twitterのパスワードを見る」というのが上記記事ではわざわざ付け足されていますが、それが「誤り」です。
「答え」だなんて強い言葉を使いつつ、
みたいな。
Twitterでは選択可能なアプリケーションタイプ3つ、アプリがそれらのどのタイプの認可を要求していて、それを認可したとしても、アプリ側からTwitterのパスワードを見る事は出来ません。
逆にそれが出来てしまったなら、OAuthによる認可である必要はなく、パスワード認証であったころと変わらないですよね。
(私の記事Twitter歴診断というTwitter連携サービスが「危険」だと騒がれている「その理由」について納得出来ないという話。にも、それは強調して書いている事なのですけれど…。)
さて…。
つまり、Twitterアプリケーション連携機能の権限付与はどんぶり仕様であり、連携するアプリケーション側からユーザに対して説明を怠けているのだ。
もうこの辺りからはもう何を仰ってるのかわけがわからないというか。
正直、Chamiu_ITさんご自身さえ自身が何を言ってるのか理解していらっしゃらないのだろうな〜と。
だからこそ、あんな記事を書いてしまったのでしょうけれど。
「このWebアプリケーションでは、次のレベルの説明が必要だと考える。」
Twitterのアプリケーション認証の権限はどんぶり仕様過ぎる より引用
から始まるくだり・・・。
私なりに意訳すると…。
- 使用する権限
- 要求するけれど使用しない権限
- 要求自体しない権限
に分けて、既存の認可画面にも表示されてる「プロフィールの更新」等のアクションを並べ替えていらっしゃるようなのですが…。
みたいな。
多分、その「次のレベルの説明が必要だと考える」から続く説明とやらを、各アプリの開発者に求めていらっしゃるのかな・・・と思うのですが。
だとしたら「使用しない権限」として、現在の認可画面で表示されてるような極めて大雑把な、「プロフィールの更新」とかの分類で記載したところで余計な混乱を招くだけでは無いでしょうか。
「次のレベルの説明が必要だと考える」と自信満々で続けていらっしゃる割に無駄にややこしくしているだけな気がします。
そもそも、Twitterがアプリケーションの認可時に表示する「許可操作例」に「プロフィールの更新」とかちょっとした連携アプリではあまり使わないようなものが含まれているのが色々と面倒や誤解を生んでいる気がしますけれど。
さて、例えば、現在、Twitterのアプリ認可画面に表示されている「許可操作例」での説明などではなく、使用する権限について「詳細に説明」なんて言い出したら、「プロフィールの更新」にしたって、もっと細分化出来るんですよね。プロフィールの本文の更新、背景の更新、アイコンの更新とか。
で、読み込み・書き込み・DM全ての権限を要求するアプリで、アプリ側から「可能な操作」を細分化すると…。
ざっと
https://dev.twitter.com/docs/api/1.1
このくらいあります。
これらの中から使用するメソッド全てを、英語の読めなさそうなユーザにもわかるように「日本語で説明」なんて言い出したらちょっとしたアプリを気軽に公開なんて出来なくなってしまいそうです。
てか、そこまで言い出したらTwitter連携アプリがどうとかいう話じゃなく、通常のアプリケーションにおいても、そのアプリケーションの動作を細分化した上で「全て列挙」みたいな話になるというか。
それってもう「あれ?仕様書?」みたいな。
(これ、「Twitter連携アプリ」等の話に限定せず、例えば、もっと話を大きく、Windowsソフトウェア等でその挙動を全て列挙…となると気が遠く…。)
どこまで詳細に説明すべきか、なんてのは開発者等の個々の判断でしか無い気がします。
逆に説明が十分な説明が成されておらず、そのアプリを「信用出来ない」と考えるなら「ソレを利用しない」という「選択の権利」はユーザにありますし、それを利用するのであれば、それを利用する事による「選択の責任」もまたユーザに有ると考えます。
(勿論、明らかに「虚偽の表示」等で「騙そうとしている」アプリケーションなんかは話が別ですが。)
「どうしても利用しなくてはならない」、「利用しなければ命に関わる」なんて、Twitter連携アプリなんて無いですよね。
Twitter連携アプリに限らず、他のメディア、様々なOSのアプリにおいても、「安心出来るレベルの説明」なんてのはそれこそユーザによって異なって来るでしょうし、「どの程度の知識をもったユーザに対する説明とするか」もまた難しい話です。そしてそれに単一の「答え」なんて無いと個人的には考えます。
「ユーザに対する説明を怠けている」などといわれても困ります。
また、「ユーザに対する詳細な説明」(どこまでやればいいの?)を「公開する側の責任」などと言われると、公開する事によって得る利益との兼ね合いを考えれば小物系ツールなんてのは公開そのものが難しい事になるのではないのでしょうか。
蛇足ですが、似たような話で、「ブログ記事に対するコメント」で、少々ウンザリした事があります。
ちなみに、Twitter歴診断とやらに関しては、Twitter歴診断というTwitter連携サービスが「危険」だと騒がれている「その理由」について納得出来ないという話。 にも書いてある通り、私的には「認可と同時に認可画面のURLをツイート」なんてのは気持ちが良いとは言えない動作だと私は思います。
ちなみに、最近、認可済みユーザが特定の条件に合致するツイートを投稿した場合、そのツイートを一旦削除後、投稿されたツイートを一部置換したものを再投稿 なんて感じの「え。そこまでやるかっ!?」とか思っちゃうTwitter連携アプリもあるので、要注意です。
さて、ここまで書きましたが…。自称 PG・SE・PM 経験者であらせられる、Chamiu_ITさんの「名言」を最後に引用してみましょう。
「APIがあるから叩いているだけ、仕様通りなのだからその仕様を上書きする説明はいらない」とするエンジニアは滅びれろ。
ということで、私はニートなので関係ありませんが、エンジニアの皆様「滅びれ」ないように気を付けましょう。
というわけで、私もひとつ言葉を残したいと思います。
「コードはかけない」「ソースみてもわからない」なんて恥ずかしげもなく言っちゃったり、仕様も理解出来てないのに常に無駄に無根拠に強気な、自称PG・SE・PM経験者さんはそろそろお黙りになった方がよろしいかと思いますよ。ほんと。
自身の経験や知識、検証などによる裏付けもなく、学習もせず、「とりあえず噛み付くだけ噛み付いておこう!」ってのは何度も続くと流石にウザイし迷惑だぞっ!
みたいな。
−−
このブログ、できるだけちゃんとした「キャラ」でやりたいと思っているので、あんまこういう記事書きたくないんですけどね…。ほんと。
—
さて、ここから割とどうでも良い私の持論ですが…。
–ここから持論–
エンドユーザに対して公開する情報ってのはある程度、必要最低限に「制限」した方が良いと考えています。
仮に詳細を公開したとしても、読むユーザはほとんど居ないでしょうし、それを理解出来るユーザは更に極わずかでしょう。
Chamiu_ITさんが未だに…(略)なように。
また、公開する情報のその内容によってはユーザの不安をむしろあおってしまう事も多いです。
具体的な例としては「現在のTwitterのアプリケーション認可画面に表示されるメッセージ」とでも言えば、わかる方にはわかって頂けますでしょうか。
あと、情報を公開するということは、「突っ込みどころを増やす」んですよね。
穴が有ればつっこみたい!なんて人は、全力で探します、内容が良く理解出来ずとも、とりあえずつっこもうとします。
そういう「アレな人に対応するための時間」ってとても勿体無いですよね。
かといって、与える情報を制限しすぎると、それもまた「不信感」の元となるので、バランス大事ですよね〜みたいな。
こういう事を言うと、また「技術者が〜」なんて仰る方がいるかもしれませんが、私、「バフ」というキャラクターはあくまで「ニート」です。
繰り返しますが、「バフ」はニートなので、どこから・どのレベルから・どんな人をそう称するのか、その定義が曖昧な「技術者」とやらかがどうあるべきかなんて知ったことではありません。
逆に自称PG・SE・PM経験者であらせられるChamiu_ITさんは、「技術者」とやらのあり方について一家言お持ちのようですが、前回の件といい、『その「技術者」とやらのネガキャンしたいの?』とかつい思ってしまいます。
Chamiu_ITさんはTwitterのアクセス権うんたら〜以外にも色々と首をつっこんで言及していらっしゃいますが、まぁ、なんと申しますか、色々と…。
そりゃ、大層な経歴を自称して、仕様さえ理解せずに、「ユーザ第一」的ないわゆる一般的な「建前」を他者に押し付けるような意見を、「攻撃的」に撒き散らすだけなら、そりゃ大した労力も必要とせず気持ち良いでしょうけどねー。みたいな。
悪意という名のメガネをかけた上での主観でしかありませんが。
–ここまで持論–
–ここから愚痴–
2014/02/14時点でChamiu_ITさんがある方に上記の「答え」とやらの記事をソースとしてアプリケーションタイプについて語っていらっしゃったので…。
Twitter連携の詐欺行為の根源はこれにつきるだろう。パーミッションがどんぶり過ぎる上に連携サービス側に説明が足りないのだよ。イットジャーナリストさん。 – Twitterのアプリケーション認証の権限はどんぶり仕様過ぎる http://t.co/5ZtKuFBUpH
— ChaMiu (@Chamiu_IT) February 14, 2014
つい、
@Chamiu_IT ちなみに、 https://t.co/sy10t6BJwr の流れの話です。
— Otapps (@otapps) February 14, 2014
なんて煽り気味のリプライを飛ばしてみたのですが、
それらをRTした上で直後に
自分がやっていることを説明しろと行っているだけだ。カス。
— ChaMiu (@Chamiu_IT) February 14, 2014
などと仰っていたので…。
@Chamiu_IT ですから、記事中で「Read, Write and Access direct messages」権限について、貴方があえて、括弧書きとしてわざわざ「Twitterのパスワードを見る」を追加しているのが「間違っている」と申し上げているのです。
— Otapps (@otapps) February 14, 2014
と、言ってみたのですが…。
結果…。
ブロックされた上で
「クソ野郎」リストに追加されてしまったようです。
まぁ、地雷地帯にあえて、しかも完全に煽り気味のノリで踏み込むような事をして被害者ぶるのもアレな気がしますが、いくらなんでも「クソ野郎」って…。
なお、現時点(2014/02/17 06:13)で、記事の該当箇所についてはまだ修正していらっしゃらないようです。
とてもとても残念です。
-ここまで愚痴-
(これでわかりやすくなったかどうかは微妙なところですが。日本語苦手なのです。別に日本語以外が得意なわけでもありませんが。)
※2014/02/20 に記事タイトルを「大分前に書いた記事に対する反応を見つけたので・・・。TwitterAPIのアプリケーションタイプ(アクセス権うんたら)及び、ユーザへの説明(?)がどうとかいう話です。」→「TwitterAPIのアクセス権及び、ユーザへの説明(?)がどうとかいう話です。」に変更しました。
なお、Chamiu_ITさんの元記事は、
http://donottrackme.tumblr.com/post/68982807026/twitter
ですが、
記事中からは archive.is の
http://archive.is/Dv91s
にリンクしています。