« 前のひとこと | トップページ | 次のひとこと »

cocolog:88703123

ブラウザ拡張(アドオン)として Tweet Sig を作って公開した。三文判程度の認証に使うことを想定している。 (JRF 2919)

JRF 2018年1月 6日 (土)

Firefox 用のアドオンのページ:

《Tweet Sig – Firefox 向けアドオン》
https://addons.mozilla.org/firefox/addon/tweet_sig/

Chrome 用のアドオンのページ:

《Tweet Sig - Chrome ウェブストア》
https://chrome.google.com/webstore/detail/tweet-sig/epefaednifmpgcdkedbcjkecibikpdkd

JRF2018/1/62762

説明用ホームページ:

《Tweet Sig》
http://jrf.cocolog-nifty.com/archive/tweet_sig/README_ja.html

サポート用のブログ内ページ:

《Tweet Sig: ウェブ上の三文判?》
http://jrf.cocolog-nifty.com/software/2018/01/post.html

JRF2018/1/60730

PP Authorizer ([cocolog:88492515])、PP Interrupter ([cocolog:88550595])、PP Interrupter Lite ([cocolog:88646381]) と作って来て、本作が4作目のアドオンになる。

JRF2018/1/69470

keyword: 時間記録デバイス

サポート用のブログ内ページに書いたが、時間記録デバイス([cocolog:72139046])がいつまでたっても登場しないことから、それに替わる何かができないかとして作ってみたのが本作になる。

JRF2018/1/62135

……。

今回の挑戦は、background.js を Event Pages (↓)として設計することであった。イベントページは Chrome の機能で、Firefox はサポートしていない。今回、イベントページとしての作り方がわかったことで、以前のアドオン、特に PP Authorizer についてもイベントページで作り直そうかと、頭をもたげているが、しばらくは Tweet Sig の更新が忙しいだろうから、それが終ってからの課題となるだろう。

JRF2018/1/62051

《Event Pages - Google Chrome》
https://developer.chrome.com/apps/event_pages

JRF2018/1/68176

……。

最初、Google+ にも対応しようと思って、調べてみると OAuth 2.0 が必要そうで、これは実装が難しくなるな…と思っていたら、よくよく調べると、OAuth 2.0 を使っても Google+ は投稿に対応していないことがわかり「なんじゃそりゃ」となった。

Twitter も OAuth 1.0a で、これも実装は難しいな…と思ったら、Tweet Button という逃げ道があり、これなら実装は簡単…と一気に作ってしまえた。

JRF2018/1/66452

さらに、後になって Facebook も OAuth 2.0 だからどうせ投稿には対応してないだろう…と思ったら、こちらは対応しているらしい。うーむ、やるしかないか?

でも、私は Facebook のアカウントは持っていないのだった。Facebook の実名ポリシーはニートには厳しく、また、アカウントを停止することで一般に見えるページが見れなくなってしまうようなサイトは、(ニコニコ動画や mixi も、)権限が強過ぎるのでそもそも使うべきでないという、意固地なポリシーがあって、アカウントを取っていないのだった。

JRF2018/1/64494

しかし、開発するなら、そうもいってられない。アカウントを取るしかないだろう。そして、開発…というのが、これから先のスケジュールになる。

JRF2018/1/67467

……。

追記。更新。

幻のバージョン 0.2。Mozilla や Google には登録していない。

Facebook 対応!…と思ったら、Facebook は Tweet Sig がやるような直接ユーザーが入力したわけではない事前入力がある投稿を許していないらしい。しかたなく、審査を受ける前に諦めた。

OAuth 2.0 を使うような実装とテストを行い、動くところまでいっていただけに残念だ。

JRF2018/1/70994

このために Facebook のアカウントも取得したのだったが、無駄になった。しかし、Facebook の開発環境のすごさ・使い易さを体験できたのはよかった。ありがたかった。

JRF2018/1/76066

なお、途中、Firefox for Android (Nightly 59.0a1) でも試したのだが、どうも、chrome.identity.getRedirectURL() と chrome.identity.launchWebAuthFlow() が動いていないようだった。PC 用の Firefox では動いたコードがそれが原因で動かなかった。それらの MDN のページでは Firefox for Android でもバージョン 53 から動くとなっているのに。

JRF2018/1/75385

……。

追記。更新。

バージョン 0.2.1。

上に書いたことがあって、意気消沈したあと、機能をバージョン 0.1 並みのものに戻して Mozilla と Google に登録したのが、バージョン 0.2.1 ということになる。バージョン 0.2 でやった変更を痕跡としてわざと残し、ファイルが増えたりしているが、基本的には 0.1 と変わらない機能になっているはず。

JRF2018/1/76723

このあとどうするか…。Facebook の審査をダメもとで試してみるか? いや、それはしないな。でも、そうなると次に何をしたらいいのか見えて来ない。「痕跡」は次のバージョンでは消しておくべきか…。五里霧中…。

JRF2018/1/72696

……。

追記。更新。

バージョン 0.4。

また Firefox for Android 用のものも専用に作った。そちらはバージョン 0.1.1。リンクは↓。

《Tweet Sig for Android – Firefox 向けアドオン》
https://addons.mozilla.org/ja/firefox/addon/tweet_sig_mobile/

JRF2018/1/197268

変更は大きく二つ。まず、右クリックメニューでセレクションを投稿し、投稿した URL をクリップボードに保存するモードを足したこと。これは for Android では、セレクションをするとボタンが表示されるようにして、そのボタンをクリックすることでできるようになっている。

JRF2018/1/194819

もう一つは、Facebook への対応。バージョン 0.3 が飛んでいるが、Facebook の審査申請に限定公開していたバージョンが 0.3 系列になる。

JRF2018/1/198605

……。

上で「諦めた」と言っていたことを思い直して、Tweet Sig を Facebook に対応させることができた。Facebook をちょっとけなしぎみだったのは、私の早とちり、結果的に判断ミスだったと言わざるを得ない。謝って訂正したい。

JRF2018/1/193616

ただ、普通の方法ではできなかった。最初、Tweet Sig の仕様を変更し上で書いた右クリックメニューの動作を足すことでよりユーザーの意志により入力がされたことがはっきりするようにした。その審査を申請してしばらくして、Twitter の Tweet Button の中身のような、シンプルな投稿ボックスである simple social page poster というアプリを作り、ダメもとで、審査申請してみたところ、予想に反して、それが先に通ってしまった。そこで一端 Tweet Sig の審査申請を取り下げた。

JRF2018/1/196393

そのような投稿ボックスが認められるなら、なぜ今 Facebook 自身が用意してないのかよくわからなかったが、そのような投稿ボックスがあれば、アドオンレベルの技術を用いれば、「事前入力(prefill)」しほうだいになる。Tweet Sig に関しては審査なしでの実装が可能となった。

JRF2018/1/193251

でも、そのような自作アプリを使うよりも、アドオンだけで完結するほうが、ユーザーの信頼感も得やすいだろうと、simple social page poster を使わないバージョンを再度、審査申請してみた。

JRF2018/1/196466

審査には落ちた…のだが、落ちた理由がよくわからない。作ったスクリーンキャストの情報が少ないらしいのだが、どういう情報を足せばよいのかよくわからない。私は正直に simple social page poster があれば審査なしでも同機能を作れるがそうしてもいいかと尋ねてみたが、無視されてしまった。その申し出に何の反応もないことから、黙諾と取って、simple social page poster を使った Tweet Sig を審査なしで公開することになった。…というのが現時点。

JRF2018/1/195490

ただ、審査なしで prefill するとは言っても、Tweet Sig の場合、ユーザーの意志によることがはっきりしているし、引用符なども prefill として禁じるとすれば、それは引用の法的要件を犯すことを促すことになる。そういうユーザーの機会まで損壊するのは逆に問題があるのではないかと思う。

JRF2018/1/192411

この先、今回のことが問題となるリスクはあるが、今は「黙認」と判断して、とりあえず Facebook を「けなした」ことへのお詫びと審査という手数をかけていただいたことへのお礼を述べたい。すみませんでした。ありがとうございました。

JRF2018/1/198431

……。

ところで、Facebook の審査には「スクリーンキャスト」が必要だったのには参った。スクリーンキャストとは操作画面を動画に撮ったもの。Facebook の勧めるアプリは Monosnnap でそれを使った。使う前は、動画にテキスト入力ぐらいできるだろうと思ったら、そんなものはなく、動画を撮っている途中にマイクでしゃべるしかなかった。

JRF2018/1/195207

Facebook は日本語で OK なのかわからないから、最初は、英語と日本語両方でしゃべるとかもやったが、simple social page poster のときは「ダメもと」だったので日本語だけの説明にしたところ、それで通ってしまったので、以降は日本語だけの説明にした。

また、Monosnap の操作に最初慣れてなくて、動画の最後のほうが画面が固定されて変わらないというのに悩まされたが、フレームレートと品質を落とす(10 frames per sec. and Low)ことで、その「バグ」はなくなった。

JRF2018/1/190331

……。

ところで、simple social page poster は最初、simple fb page poster にしようと思っていたのだが、アプリの名前に fb などの商標的なものを含んではならないという Facebook の規制により、このような名前となった。いちおう、そのアプリにもリンクしておく。

《simple social page poster》
http://jrf.cocolog-nifty.com/archive/tweet_sig/fb_page_poster.html

JRF2018/1/198820

……。

Tweet Sig for Android の開発について。

Firefox for Android では contextMenus が使えないので、selection を監視して、selectionchange イベントでセレクトされていたら、アドレスバーにボタンが表示されるようにして、ボタンをクリックするとセレクションの内容を読んで処理する…といったことをやろうとした。

JRF2018/1/195763

ボタンを表示するところまではうまくいった。しかし、ボタンをクリックすると、どうもセレクションの内容が読まれない。おそらく、アドレスバーのボタンを押すと selection が消えるというのが Firefox for Android の仕様らしい。

他に selection を取るには、ドキュメント内に要素を足すぐらいしか考えつかないが、任意のドキュメントにそれをするのは困難(セキュリティ的に問題あり)。

JRF2018/1/197980

そこで、苦肉の策として、selection がなくなったときも前の selection を記憶しておいて、それに関して処理するというようにした。つまり、一度、セレクトするとずっとボタンが出っぱなしになるようになった。

怪我の功名か、そのおかげで、iframe に対応するのも簡単にできた。

JRF2018/1/190837

……。

Mozilla に登録する段になって、審査待ちが発生していたのは今回はじめてで、少し驚いた。Google に登録するときも、タイルの再提出を求められた。審査で少し自意識過剰になっている私には、Facebook にある意味「たてついた」から邪魔されているのか…とか妄想してしまった。orz (もちろん、そんなことはない。)

JRF2018/1/195518

……。

……。

追記。更新。

バージョン 0.5。mobile バージョン 0.2。

小さな変更。引用時にタイトルもコピーできるようにした。

このためだけに manifest.json で新たなパーミッション("tabs")が必要になるので、実装するか少し迷ったが、実装した。mobile では逆に "tabs" を使わずに実装するようにした。

JRF2018/1/232351

タイトルが長い場合、文字数を設定しておいてそれで truncate することも考えたが他のアプリはあまりやってないようなので、やめておいた。引用がメインなのでタイトルはむしろ邪魔かもしれないと考え、設定でタイトルを付けるかどうか決められるようにして、デフォルトではタイトルを付けない設定にした。

JRF2018/1/239453

« 前のひとこと | トップページ | 次のひとこと »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/93568/66248230

トラックバックのポリシー

他サイトなどからこの記事に自薦された関連記事(トラックバック)の一覧です。

» cocolog:89122076 from JRF のひとこと

金利は破綻のリスクに対する保障としてあり、その本質は社会に確保される「捨て扶持」にあるのではないか? 投資により所得が増えるのは、「捨て扶持」を利用するところからリスクを取るところに移動し、人口増に寄与するからではないか?... 続きを読む

受信: 2018-03-30 21:28:11 (JST)

このころのニュース