Choose your language: English, 日本語(Japanese). Or use the Google translation:

これは何?

Mozilla Firefox 用または Google Chrome 用のアドオン。ボタンを押すことで、'#tweet-sig-in' の内容を投稿し、その URL を '#tweet-sig-out' にコピーする。または、右クリックメニューで選んで(for PC)またはボタンを押して(for Android)、セレクションの内容を投稿し、その URL をクリップボードにコピーする。

三文判程度の認証に使うことを想定している。Firefo for Android においては引用に便利。現在利用可能なメッセージサービスは、Twitter と Facebook。

どこで手に入れられる?

Firefox for PC の場合は、こちらの AMO (Mozilla Add-ons) のページにて。Firefox for Android の場合は、こちらの AMO (Mozilla Add-ons) のページにて。Chrome の場合は、Chrome ウェブストアのページにて。

ブラウザの拡張機能の標準である Web Extension 規格に順って作った。使えるブラウザは今後、増えていくはず。

電子署名はどこまで必要か?

取引などに公開鍵を用いた電子署名を使うのはいかにも重々しい。計算機の将来的な発展まで考えると信用できないという人もいるかもしれない。もっと簡単な方法で、取引の際に取引意思のある本人であることを認めさせることはできないだろうか?

あるサイトが話している本人のものであることを証明する簡単な方法として、今ここで考えた文字列をサイトのどこかに表示させるという方法がある。また、あるサイトが話している本人のものとわかっていれば、取引内容の符牒をそこで公開させれば、第三者はその符牒に沿った取引がいつあったかを知ることができる。

この「あるサイト」として Twitter や Facebook などのメッセージサービスを使い、簡単な認証を行おうというのが本アドオンの提案である。

取引を後々まで確認できるようにするためには、サイトにデータが残り続けて欲しい。しかし、Twitter では削除ができてしまう。Facebook では編集さえできてしまう。ただ、もし、取引の違反が詐欺などの犯罪レベルにまで達していれば、削除・編集したデータはサーバーには残っているようだから、データの復元は不可能ではないだろう。露骨な詐欺は起きにくいと考える。

第三者が確認できるように、投稿は皆に公開されていて欲しい。しかし、Twitter ではツイートを非フォロワーに対して非公開にできるし、Facebook ではもっと細かなコントロールが可能だ。ただ、これは公証人のような第三者が常に投稿を公開して行えばよいという考え方もあるし、有料で公証人からフォローしてもらうなどといった方法もありえるため、大きな問題ではないと考える。

なんといっても仕組みが単純で理解しやすいのが、本アドオンの売りである。

アドオンの動作

アドオンには二つのモードがある。モード1は、右クリックメニュー(for PC)で選んでまたはアドレスバーのボタン(for Android)でセレクションを投稿し、投稿した URL をクリップボードにコピーするもの。モード2は、tweet-sig-in という DOM 要素の内容を投稿し、投稿した URL を tweet-sig-out という DOM 要素に代入するもの。ここではモード2について説明しよう。モード1はあたかもモード2の途中を取り出したもののようである。

上記の公開する符牒は、フォームデータのハッシュ値などが良いだろうが、このアドオンはハッシュ値を取るところまではサポートしない。単に、ハッシュ値が、id が tweet-sig-in の DOM 要素に含まれていると仮定する。

あるページに id が tweet-sig-in という DOM 要素と id が tweet-sig-out という DOM 要素があれば、アドオンはツールバーにボタンを表示する。

そのボタンを押すと tweet-sig-in という DOM 要素に入ったデータを投稿するためのタブが表示される。(その DOM 要素が INPUT タグの要素であれば value が参照され、それ以外であれば、textContent が参照される。)

そこで投稿すると、自動的に tweet-sig-out という DOM 要素に投稿の固有 URL が代入される。(その DOM 要素が INPUT タグの要素であれば value に代入され、それ以外であれば、textContent に代入される。) その後、その DOM 要素に "change" イベントを発行する。

つまり、フォームの確認ページが tweet-sig-in と tweet-sig-out という id の DOM 要素を持っているようにしなければならないということである。

ユーザーに以上のことをこのアドオンを使わずに手動でさせることは可能だが、その説明がすんなりわかるか、想像して欲しい。難しいはずだ。確かにこのアドオンは特定の id を使うという特殊な動作を行うが、説明するには、「このアドオンをインストールしボタンを押せ」というだけで済むのである。そこがこのアドオンのメリットなのである。

ボタンイメージの配布

ユーザーに説明するときにボタン画像が必要だろう。そのような用途においてボタンのイメージを(ダウンロード/アップロードして)自由に使ってよい。以下に様々なサイズのアイコンを置いておく。

16x16 , 32x32 , 96x96 .

FAQ

いくつか想定される質問に答えておこう。

Q. なぜ Twitter と Facebook?

A. はじめは Twitter だけだった。実装が簡単だったから。Facebook は、ぜひともそこで使いたかったため、裏技的な方法で実現した。Google+ に関しては、そもそもコメントを投稿する API を用意していないらしい。Mastodon は有志により、Twitter と似た形式で実装できそうだが、メジャーではないため対応しなかった。

Q. これは Facebook が禁じる prefill をするアプリではないのか?

A. Facebook は、投稿するときにユーザーが直接入力していないものが事前に入力されているもの(prefill するもの)を認めていない。しかし、ユーザーが事前入力をするアドオンを使うという強い意志を持っているのに、それを使わせないのはユーザーの機会を損壊するものだし、引用符などが使えないというのは引用の法的条件を破るのを促すことだ。それは逆に問題がある。私は、そのため、prefill しない simple social page poster というアプリをまず審査申請して通してもらい、それをアドオンレベルで使うということをして、裏技的に Facebook の審査を逃れている。

Q. なぜアドオン?

A. もし、ページにボタンを設置するだけで投稿できるなら、悪意ある第三者が、スクリプトを用いて任意のコメントを投稿できるようになってしまう。それを避けるために別のタブやウィンドウを開くのが普通で、さらにそのタブからデータを戻さねばならないとなると、(postMessage に対応するなどあらかじめ作り込まれている場合は別として、)アドオンのレベルが必要だから。

このアドオンはやや実験的

このアドオンはできたばかりで、やや実験的であるが、使っていただけるとありがたい。DOM 要素の名前を tweet-sig-in と tweet-sig-out に決めたのは特殊だが、とにかく何か決める必要があったからそうしただけで、やっていることはとても単純なことである。

作者自身は実際の取引でこのアドオンを使うような場面ははっきりいってない。このアドオンを実験する機会にめぐまれていない。そのため、このアドオンの更新は滞りがちになると予想される。許していただきたい。

ご意見・ご要望は、作者のブログの一ページで受け付けている。日本語のサイトだが、英語でコメントを寄せていただいてもかまわない。なにぶん、個人のサイトなので致らないところは多々あると思う。ご寛恕いただければと思う。

(なお、このサイトの英語ページは日本語のページを逐次、Google 翻訳したものに手を加えたものである。)

プライバシーポリシー

このアドオンはユーザーのいかなるデータも収集していません。アドオンのインストールについて Google と Mozilla が統計を取っているだけです。

License

The author is a Japanese.

I intended this program to be public-domain, but you can treat this program under the (new) BSD-License or under the Artistic License, if it is convenient for you.

Within three months after the release of this program, I especially admit responsibility of efforts for rational requests of correction to this program.

I often have bouts of schizophrenia, but I believe that my intention is legitimately fulfilled.

(Mozilla の配布ページでは、わかりやすさのため、BSD License にしているが、それを緩めた上記のライセンスで良い。)