主にWEB関係の話。

スポンサード リンク

Twitter関連アプリのユーザにも知っておいて頂きたいTwitterのOAuthの話。

2013/07/03
Twitterのアプリケーションタイプについて 別の記事を書きました

バフは、「バフ」というキャラクターでTwitterのブロック済みユーザを取得する「ブロック済みユーザチェッカー」というWEBサービス(?)を公開しているのだけれど、それに関するつぶやきで、要約すると、OAuthの認可時に「プロフィールの更新やら、フォロー追加の許可が必要なのはおかしい」的なことを仰ってる方がいて。

「3)は結果をtweetするためかもしれぬ。」などと仰ってる辺り、

・タイムラインのツイートを取得する
・ツイートする
・フォローしている人を見る

までは「仕方ない」と考えて頂けているようなのだけれど、

・フォローを追加する
・プロフィールを更新する

というのに納得頂けない模様。

さて、これらの要求する権限、ユーザがこの認証画面を見る分には分離されているように見えるかもしれないけれど・・・。
TwitterAPIを利用したアプリ側からみると、「読み込み+書き込み」の権限を取得しているに過ぎない。(TwitterAPIを用いたサービスの運営者や、その辺で配布されているTwitterBot等を自分でインストールして使ってる人なら分かって頂けると思うけれど。)

というのも・・・。

aptype

上図のアプリ設定画面のように、TwitterAPIでは、以下の三つのアプリケーションタイプしか選択できない。

Read only(読み込みのみ)
Read and Write(読み込み+書き込み)
Read, Write and Access direct messages(読み込み+書き込み+ダイレクトメール)

よって、アプリケーションの設定として「Read」を選択すると、タイムラインの取得はもちろん、ブロック済みアカウントの取得、フォロー済みのプライベートユーザのつぶやき、リストの一覧、リストに追加しているアカウントのつぶやき一覧の取得、などなどさまざまな情報を取得できる。
また、「Read and Write」の場合、上記の認可画面にもあるように以下のような権限を持つトークンが発行され、


・つぶやきの投稿
・フォローの登録、解除
・プロフィールの更新
・ブロック、スパム報告登録、解除
・リストの作成・削除

など、とさまざまな事が可能となる。(上記は一例)

また、最後の「Read, Write and Access direct messages」の場合、ダイレクトメッセージを送ったり、受け取ったダイレクトメッセージを取得したりといった事も可能となる。

ちなみに、以前は、Read にダイレクトメッセージの閲覧権限も含まれていたので、Readを許可しただけで、アプリはダイレクトメッセージにアクセスすることが出来た。

さて、上記のつぶやきをされた方はプロフィールの更新・フォローの登録等の権限がアプリに付与されてしまうことを懸念されているのだけれど・・・。
これ、Read and Write でアクセストークンを取得した場合、すべて出来てしまうんだよね。

なので、OAuthでの認可を求められるTwitter関連のアプリケーションで、作者を信用できない場合は、利用することを避けたほうが良いかもしれない。
作者が人格者であっても、アプリ(サービス)のシステム的な不備によってコンシューマキーとアクセストークンなどが流出しちゃった場合、悪意の第三者によるアカウントの操作も可能なわけで。

ちなみに、Read and Write でトークンを取得するアプリケーションなら、例えば・・・
取得済みのトークンを用いて「任意の人物をブロック→ブロック解除」とかやっちゃうと、ユーザが知らない内にフォロー関係を壊してしまうといった事が出来てしまう。
あとは、フォローを全部解除だとか、フォロワー全員ブロックだとか、ツイートを全部削除だとか、やろうと思えば大抵の事が出来る。
ちなみに、ユーザが、どのアプリがどんなリクエストをしたなんて事を確認する術をTwitterは提供していない。(投稿の場合は、アプリケーション名が付加される気がするけれど)

「そんな下らないこと誰がやる!?」って感じだけれど、以前、「自分の作成したアプリ利用者に自分のツイートをふぁぼらせる!」みたいな事をやらかしたアプリ開発者さんもいたので、「ありえない事」とは断言できない。

 
 
 
ていうか・・・
だらだらと書いておきながらアレだけれど。
ぶっちゃけ、

block4_001

block5_001

nbcb_001

みたいな!(ごめんなさい。)

アプリの権限がどうだとか、作者がどうだとか気にしだしたらどんなアプリも利用できなくなっちゃうよね~。

てか。他の作者は信じられずとも・・・

block3_001

「ブロック済みアカウントチェッカー」はどうして書き込み権限を要求するのか

「ブロック済みアカウントチェッカー」に関して言えば、現在、公式のツイートボタンを利用しているので、特に書き込み権限を取得する必要はないのだけれど・・・・。
以前、「公式のツイートボタンじゃブロック済みアカウント数を改ざんする屑がいるから・・・」などと仰っている方がいて、

block1_001

いや、バフもブログやTwitterで証拠隠滅とかするけれどさ!

なんてバフは最初思ったのだけれど、
まぁ、お気に入り(ふぁぼ)とかリツイート数とかで一喜一憂する人もいるし…
ブロック数に自信のある方はブロック数の改ざん(誰得?)が「許せない!」とかいう感じなのかなー・・・と。

そんな人もいるよね・・・。関わりたくないけれど。

と、バフなりに納得しまして。
「じゃぁ今度、ツイート数の投稿はAPI経由の投稿にして改ざん(誰が得するの・・・)できないようにしよう!」
と思ったわけ。
バフは、現時点でTwitterAPIのアプリ設定を開発用と公開用であえて分ける必要性はほぼ皆無だと考えているので、2013/2/14時点で「Read+Write」に変更しておいた。(ちなみに2013/3/4 に実装したブロックリスト公開機能でAPIでの投稿を利用している。)
それで、認証時のメッセージを額面通りに受け止めて、今回のような「どうしてプロフィールの更新が必要なんだ」的なことを言い出す人が現れたという…。

割りとどうでも良い愚痴

その方の中では、プロフィール更新・ツイート投稿・フォローの追加、開発者がそれぞを選択出来るものだと勘違いされていたようなのだけれど「開発者は読み込み、読み込み+書き込み、読み込み+書き込み+DMの三種類しか選べないのです。」的なことを説明しても、

「新しくフォローするとプロフィールを更新するはいらないだろ」

「理解していない事を露呈」

「Togetter(他所様のサービス)はそうなっていないぞ」

的なこと(原文そのままではない)を超強気に言われまして・・・。

追記:以下原文 バフはこういう方とのやり取りは終了後に削除するようにしているので、一部キャプチャ画像だけれど。

arenahito1

※反応がなかったので、さすがに大人気ないかなー・・・とおもって「不思議とやらは〜」「わざわざSSまで撮って〜」ってつぶやきは削除しておいたのだけれど…。

それらのツイートをこちらが削除した事を把握した上で、こちらのID付きでわざわざ非公式リツイート(らしきもの)をしていらっしゃったので・・・。
覗いてみると・・・。

※「実に理解してない事を露呈してくれたので」とか申されましても・・・。って感じ。何を根拠に、何を理解しているつもりでそんなに強気なのだろうと、引く気も起きないわけで。

※RだWだといいつつ、その意味をどう捉えていらっしゃったのだろう。というか、認証時にTwitterが出すメッセージがあのような形になったのはもう随分と前の話だし。ていうか、わざわざ魚拓取ってるあたり「揚げ足取りたい!!」みたいなのが表に出てて気持ち悪い…。

※ようやくご理解頂けたらしい。ちなみにTwitterAPIのアプリケーションタイプの話のみに限定するなら、「腐った」わけじゃなくて昔から同じ。
むしろ、以前は Read or Read+Write しか存在せず、ReadのみでDMまで取得出来ていた事を考えると、まだ改善された方っていう。
「つうか、腐ってるのはTwitterAPIじゃなくて貴方の・・・(略」
んで…ようやくご理解頂けたのかと思っていたら…。

※やっぱり、勘違いしていらっしゃった。別にTwitterAPI1.1でそういう仕様に変更されたわけじゃなくて、バフがアプリケーションをAPI1.1に対応させるついでにアプリケーションタイプを変更しただけなのだけれど…。

別件を含め、頑張って説明したのにご理解頂けなかったようなので、

block9_001

なんて思いつつも、、結局、この記事を書いたっていうね。

 

最終的に

などと仰ってるけれど・・・。
別に「全てを知れ」などと一言も言ってないし。
ただ、権限について全く理解が無いにも関わらず、有識者気取って「実に理解してない事を露呈してくれたので」とか他者を指して言い放った事について「何を理解しているつもりでそんな事を仰ったのだろう・・・。すごい迷惑。」くらいは当然思っているけれど。
Twitterのアプリケーションタイプの話は、割りと前からいわれてる事でもあるし、ググれば他の記事も沢山出てくるし、自身で何かのアプリやサービスを組んだ事のある人ならもちろん、自身でTwitterのコンシューマキーを取得して何かしらのアプリケーションを動かした事がある人間なら当然知っている事だしね。

補足:
記憶違いでなければ、Twitterの認証メッセージが現在のような形になったのはもう二年ほど前、ReadとDMへのアクセス権が分離され、アプリケーションタイプが2つから3つに変更された時の話(具体的には2011年の5月くらいだと思う)で、それまでは、

twitteroauth

といったメッセージが表示されていた。
が、ここ二年ほどはRead+Write以上の権限を要するアプリを認可しようとする度に、「プロフィールの更新」「新しいフォローの追加」などは表示されているはずなので・・・
Chamiu_IT氏が、今更、あえて、ブロック済みアカウントチェッカー認証画面の「プロフィールの変更」「新しいフォローの追加」についてつっこんできたって事は、Chamiu_IT氏が、ブロック済みアカウントチェッカーを認証しようとしたときに、それに初めて目を向けたって事なのかな、、と。
「Togetterですら要求しないぞ?」などと強気におっしゃっている辺り、約二年の間、恐らくは気にしてさえいらっしゃらなかったであろう認証時のメッセージに、「たまたま」バフが運営するサービス上でお気づきになったってのが、バフ的にとても迷惑な話。

さて、その後も論点を変えて「現時点で使用していない権限を取得するのはどうなんだ」的な事を仰ってるけれど、何かに文句つけてないと呼吸が止まってしまうみたいな特殊な病気でもお持ちなのだろうか。(Read+Writeを取得している理由はこの記事上部で書いている通り、開発用と公開用でTwitter上のアプリ設定を切り替える必要性をバフが感じていないからだけれど、要求される権限に納得できないならユーザは認可しなければ良いだけだしね。)
強気にドヤァ って感じで批判するならせめて公式ドキュメントに目を通してからにして頂きたいな・・・なんて思う今日この頃。

もしくは、もう少し態度を穏やかにするとか・・・。

とりあえず噛み付いておこう、ハッタリかましておこうなんてのは公益性が無いどころか、「迷惑」なのでやめて頂きたいと本気で思う。
特に、必要以上に「強気」だったり「攻撃的」だったりする意見は、その内容が、どれほど無根拠で適当でポエミーであろうが、無駄に訴求力を伴うから尚タチが悪い。
権限に対する「同意クレクレ君」呼ばわりまでされてバフさんとても不愉快。

最近、「バフ」というキャラクターで「モンスター」と遭遇することが多い気がする。

block6_001
追記:
公開予定のサービスについて発言してみたら、公開前にそれを拾って


とか仰っているし、とりあえず文句言いたい人なんだろうなーと納得した。

ちなみに、その後そのサービスについては公開している。

スポンサード リンク

人気記事

最近の投稿

カテゴリー

タグ