Swanman's Horizon

性欲をもてあましつつなんらかの話をするよ。

新規利用でもJanetterの認証制限を回避して使う方法。(追記あり)

この記事は怒られたら前方伸身宙返り3回ひねり土下座をしつつ引っ込める予定ですのでご了承下さい*1
あと当然ながら分かってる人向けの話なので、質問とかされてもわたしこまるあるよ。

回避方法

今のところネットを探して出てくる方法は、

  • 認証時のURLから「&force_login=true」を削る
  • 誰かが認証解除することを期待してひたすら認証をリトライし続ける

しかないわけですが、そもそも制限されているのは「Janetterというクライアント」ではなく、「Twitterに登録してあるJanetterという名前のアプリケーション設定」なので、設定を別のものにしつつガワはJanetterを使うということも可能だったりします。
その方法も簡単で、Consumer KeyとConsumer Secretと呼ばれる文字列を書き換えるだけ!

じゃあなんでそれやらないの?

そんな簡単なことなら何で誰もやらないんだ?というと、それらは通常隠されていて簡単には見つからないようになっているからです。もちろんこれは意地悪で隠しているのはなく、これを利用するとJanetterではないクライアントがJanetterを名乗れてしまったりと色々とアレなので隠されてます。

で、Consumer KeyとConsumer Secretはどこに?

JanetterはUI周りをDelphiTwitter API等の内部処理をPythonで書かれていますが、それらの文字列はPython側のソースコード内で指定されています。Janetterのフォルダ内を一見するとPythonソースコードはどこにも無いように見えますが、実はzip圧縮した上でJanetterSrv.exeの末尾に結合されています。試しにJanetterSrv.exeをバイナリエディタで開き、「PK」という文字で検索するとzipファイルの先頭部分が簡単に見つかります。あとはここから末尾までを切り出すとそこらのアーカイバで開けるzipファイルがあっさり取り出せます。簡単ですね。

取り出したzipファイルを開くと、複数のフォルダと複数のコンパイル済みPythonファイル(.pyo)が出てきます。この中のtwapi.pyoにConsumer KeyとConsumer Secretは記述されているわけですが、コンパイル済みファイルなのでそのままでは書き換えができません*2。なのでそこら辺からPythonのデコンパイラをありがたく頂いてきてサクッとpyファイルに変換します。お手軽ですね。
変換したpyファイルを見ると開いてすぐのところに「CONSUMER_KEY」と「CONSUMER_SECRET」の指定があるのでこれを書き換えます。最新版の場合3つあると思いますが、Windows用の設定は一番上のものです。

最後にファイルを書き戻します。元となったtwapi.pyoは削除し、残りのファイルと新しく生成したtwapi.pyをzipで固めます。次に最初にzipファイルを取り出したJanetterSrv.exeのzip部分をさっくりと消し、新しく作ったzipで置き換えます。
あとはそのままJanetterを起動して認証すれば見事通るはずです。

ね、簡単でしょう?

たったこれだけの手順であっという間にJanetterが元気に走り回る姿を確認できます。本体のアップデートが来たら再び書き換えないといけないのが面倒といえば面倒ですが、最終更新が去年の7月というくらいの更新頻度なのでまぁ許容レベルじゃないかと思います。

追記(2014/7/25)

何かよく分かりませんがここに置いときますね。
ダウンロード

追記(2015/3/5)

誘導されてきた人が迷子になってるらしい話を聞いたので一応書いておくと、上のリンクからダウンロードできるモノは何らかの手順を数回クリックするだけで自動で行うツールです。僕には何のことだか全く分かりませんが。

追記(2015/5/30)

リアルに何が起こってるのかよく分かりませんが、付属のアプリキーは凍結されてしまったので、対応はコメント欄を参照してください。

追記(2015/7/30)

何らかの新しいものに対応したので、上記のファイルを差し替えました。

*1:ググったらJanetter for Macでの方法がそのまま放置されてるので大丈夫?

*2:バイナリエディタで書き換えられなくもないけど、キーの長さが違ったりするとPythonバイトコードの知識が必要で大変