突然だが、自動車税や固定資産税などの税金や、公共料金などの払込票などを、どのように支払っているだろうか?
支払う額も大きくなりがちなので、なるべくお得に支払いたいのではないだろうか。
そこでオススメなのが nanaco ギフト だ。
(以下略)
この記事は、以前紹介した以下のツールの GUI 版を紹介するものだ。
nanaco ギフトのなんたるかは、以下のページをご参照をば。
端的に言うと、以下の通り:
税金や公共料金などに使える nanaco の残高を、 「ベネフィットワン」や「ちょコムショップ」などでお得に購入できる nanaco ギフトだが、 1,000 円単位で提供されることが多い。
大きな額の支払いだと、例えば 10万円 なら 100回 面倒なチャージ作業を繰り返す必要があり、その手間がお得分に見合わなくなる。
このため、 nanaco ギフトの登録を自動化してしまおうという話だ。
前回は、 PowerShell 版を作成して個人的にはこれで完全に事足りていたのだけれど、 ブログの記事にして公開したら、どうやら敷居が高かったらしく 「素人には難しい」とか「Excel で公開して」とかメールやらコメントやらを、いくつもいただいた。
確かに、昨年私が PowerShell 版の記事を出した頃、同じような時期に同じ目的の記事がいろんなブログで書かれるようになった気がするが、どれもこれも、いわゆる「プログラマ」なら簡単に使えるものの、それ以外の人には厳しそうなものばかりだった。
そこで、 専門的な知識がなくても使える、 みんなに易しい GUI (グラフィカルユーザーインターフェイス) で動くツールとして作り直してみたのが、今回のお話。
当初は、 PowerShell版 を流用して簡単に作れるかな~ とか目論んでいたのだけれど、色々うまくいかず、 結局イチから作り直している。
booth で販売中
使用している技術の都合上、 プログラムのサイズが非常に大きくなってしまったので、 booth での頒布としている。
思ったより手間がかかってしまったので、支払いで得した部分のほんの一部だけ、ツールの販売価格としていただけると嬉しい。
最大 3つ まで、ギフトを自動で登録できる体験版も用意したので、まずはそちらで期待通り動作するかどうか確認してから、購入してほしい。
このツールは 現状のまま 提供されるものであり、 このツールを利用したことによって生じた不利益などは、いかなる場合でも制作者は責任を負いません。
また、今後 nanaco ギフト側の仕様変更等によって、このツールが動作しなくなったとしても、更新の義務は負わないものとします。
誰も買ってくれないような気はするが、、、 手数料で赤字にならず、20~30枚登録すれば十分元が取れる価格設定にしたつもり。
……と思っていたら、ポツポツと何名かにご購入いただけているようです。 需要があって良かった。
なお、売上げから booth のサービス利用料を引いた、利益のうちの半分は、 COVID-19 支援基金や、 制作に使用したオープンソースプロジェクトに寄付をする。
2021年5月~12月にかけての売上は上記のように寄付を行っていたが、その後販売数が減少し、振込や寄付にかかる手数料の割合が高くなってしまったため、上記の取り組みは終了し、代わりに値下げした。
[追記] 売り上げの寄付
おかげさまでいくつか購入いただけたので、12月分までの利益の半分を寄付していました。
- 5月分 (売り上げ: 2,250円 / 手数料差引後: 1,926円)
- 6月分 (売り上げ: 2,750円 / 手数料差引後: 2,354円)
- electron: 5米ドル 564円
- Yahoo!ネット募金 医療分野助成基金: 600円
- 7月分 (売り上げ: 2,000円 / 手数料差引後: 1,712円)
- Yahoo!ネット募金 医療分野助成基金: 900円
- 8~12月分 (売り上げ: 2,750円 / 手数料差引後: 2,354円)
- electron: 5米ドル 600円
- Yahoo!ネット募金 医療分野助成基金: 600円
使い方
…と、販売回りについての内容を一通り記載したところで、ツールの具体的な使い方について。
上記の booth のページから、体験版または正式版をダウンロードして、 zip ファイルを任意のフォルダに解凍するところからスタート。
nanaco-gift-registerer-gui.exe
をダブルクリックして起動する- "ギフトID" のリストや、 "PC用URL付ギフトID" が含まれているメール本文 をテキストボックスに入力する
- デフォルトの動作では、テキストの中から ギフトID付きの URL が含まれている行を探して、その URL を使って登録する
- "URL ではなく ギフトID を入力" にチェックを入れると、 ギフトID とみられる 英数字16桁 から始まる行を探して、その ギフトID から URL を作成して登録する
- どちらが良いかは ギフトID を購入したサービスにもよるけれど、 ベネフィット・ステーション や デイリーPlus などで購入した場合のメールであれば、どちらでも動作するはず。 次項の補足も参照。
- nanaco の会員の種類と、 nanaco のログイン情報を入力する
- 「実行」をクリックする
- 新しいウィンドウ上で、 自動的に nanaco ギフトが登録されるので、 終わるまで待機する
- 進捗や結果は (エラーが発生した場合は、そのエラー内容も) 、「進捗ログ」テキストボックスに表示される
- 進捗ログに表示される現在実行中の ギフトID は、安全のため先頭4文字以外は * でマスクされている
- 誤作動防止のため、自動で動くウィンドウ上で、マウスのクリックやスクロール等の操作は行わない。 PC を一切操作せずに置いておくことが望ましい。
どんな感じで動作するのかイメージできるような、実行状況のキャプチャー動画も下に置いておくので、ご参考まで。
nanaco ギフト テキストの作り方
"nanaco ギフト" のテキストボックスに入力する内容は、前述の通り以下の2通りの方法がある。
- "URL ではなく ギフトID を入力" にチェックなし: テキストの中から ギフトID付きの URL が含まれている行を探して、その URL を使って登録する
- "URL ではなく ギフトID を入力" にチェックあり: ギフトID とみられる 英数字16桁 から始まる行を探して、その ギフトID から URL を作成して登録する
デイリーPlus や J's コンシェル など、 ベネフィット・ステーション系のサービスであれば、 ギフトID が記載されたメール本文をそのままコピペすれば、どちらの設定でも動作する。 (2020年5月現在)
ちょコムショップ であれば、 メール本文内の ギフトコード が書かれた範囲をそのままコピペし、 "URL ではなく ギフトID を入力" にチェックを入れて実行する。
福利厚生倶楽部などのように、 HTML ページの表で ギフトID の一覧が表示される場合は、以下のような手順で実行すれば OK。
- いったん表ごと Excel や Google スプレッドシート にコピペする
- ギフト ID の列だけ改めてコピーしなおす
- ツールのテキストボックスに貼り付ける
- "URL ではなく ギフトID を入力" にチェックを入れてる
- 「実行」をクリック
エラー例
-
no valid Gift URL
- "nanaco ギフト" のテキストボックスに、有効な ギフト URL が見つかりません。
-
The number of gifts has exceeded the limit: 3
- 体験版では、記載された数のギフトしか同時に登録できません。
-
no valid button (Probably the card number or the password is wrong)
- おそらくログイン情報の誤りが原因で、想定されたボタンが表示されません。 (※1)
-
no valid button (Probably the gift is already registered)
- おそらくすでに登録済みのギフトIDの登録が原因で、想定されたボタンが表示されません。 (※1)
※1: 詳細オプションの設定で、エラーを無視して続行することも可能です。
詳細オプションは、ウィンドウを一番下にスクロールしたところに存在します。
高度な設定
入力が早すぎて表示の処理が追いつかずにエラーとなる場合がある。
そのときは、 --step-waiting
オプションに実行後とのウェイトタイム (単位: ms) を指定すると、うまく動くようになる場合がある。
設定例:
ファイルをダブルクリックする代わりに、コマンドプロンプトなどのターミナル上で、以下のように指定して実行する。
.\nanaco-gift-registerer-gui.exe --step-waiting=1000
余談
以降は、使う上では全く必要の無い情報なので、気になる人以外は読み飛ばして欲しい。
技術的には、 Electron で GUI のガワを作り、 Puppeteer で Electron 内のブラウザウィンドウを操作して、 nanaco ギフトを自動登録させている。
このため、 PowerShell 版とは異なり、別途 Selenium の Driver 等をインストールする必要は無い。
ただし、 nanaco ギフトの登録ページをそのまま操作させると、新しいウィンドウが勝手に開いてしまったりして、処理するうえで色々やりづらかったので、 nanaco ギフトの登録ページの一部をローカル側で書き換えて、ポップアップウィンドウが表示されないよう少し細工している。
技術的には Linux や macOS でも動かせるとは思うのだけれど、 Linux を触るような人には PowerShell 版で十分だと思うし、 macOS は持ってなくて試せない上、 Electron で色々配慮しなくてはならないことが多くて面倒なので、これらの OS 向けにはビルド済みバイナリは用意していない。
macOS ユーザーもきっと CUI 慣れしているような "プロ" ユーザーばっかりでしょ (偏見)。
ちなみに、 ソースコードは以下のリポジトリに置いてある。 ライセンスは MIT だ。
……言いたいことはわかるね?
https://github.com/advanceboy/nanaco-gift-registerer-gui
はじめまして。
この度、BOOTHにて販売されてました、こちらのツールを購入して
利用したところ、貴ブログに記載のないエラーが多発して度々作業が中止されました。
現在のところすべてのギフトコードがすべて反映されているかどうか分からない状態です。
もし可能でしたら発生するエラーの種類と意味ならびに対処法を、載せて頂けると幸いです。
ご不便をおかけしております。
可能な範囲で調査したいとは思いますが、エラーが発生した際の状況がわからないと、原因を調べたり対処を行う術がありません。
以下のような情報を、購入いただいた booth のメッセージか、 GitHub プロジェクトの Issue などに、ご連絡をお願いいたします。
* 実行している OS (Windows 10 Version 21H1 等)
* バージョン (nanaco-gift-registerer-gui.exe を右クリックして、プロパティ→詳細 から調べられます)
* 「URL ではなく ギフトID を入力」 チェックボックスの設定
* 詳細オプションの設定
* 進捗ログに表示された内容
* エラーが発生する直前に表示されている nanaco ギフトのページ (「nanacoギフトって?」「ログイン画面」「会員メニュー」「nanacoギフト登録」「ご利用規約に同意の上、登録」「ギフトID 登録フォーム(『確認画面へ』ボタンのあるページ)」「ギフトID 登録内容確認」「ギフトID 登録完了」のいずれか)
* 高度な設定の –step-waiting オプションのウェイトタイムを設定した場合の結果
* もしあれば、エラー発生時のスクリーンショットなど
もし、エラー発生時の状況の情報を残していない場合、詳細オプションの「登録済み」エラーを無視するオプションを有効した上で、登録済みのギフトIDを再実行いただけると、エラーの状況を再現できる場合があります。
なお、登録済みギフトID で実行した場合は、 “warning: no valid button (Probably the gift is already registered)” と表示されるのが正しい動作ですので、それ以外のエラーが出ていないかどうかで判断をお願いいたします。
> 現在のところすべてのギフトコードがすべて反映されているかどうか分からない状態です。
結果の成否は、「進捗ログ」のテキストボックスに表示される想定です。
「Process: gid=<マスクされたギフトID>」の次の行に「Done.」と表示されていれば登録の成功が確認できており、それ以外のエラーメッセージが表示されていれば登録に失敗している可能性が高いです。
また入れ直しを行う場合、 詳細オプションの「登録済み」エラーを無視するオプションを有効にすれば、登録済みと失敗のギフトIDを混ぜてもう一度実行することが可能です。 最終的に、 実行毎の「Done.」の数を総和して、ギフトID の数と一致すれば、全てのギフトIDが登録できていることの確認となると思います。
> もし可能でしたら発生するエラーの種類と意味ならびに対処法を、載せて頂けると幸いです。
発生が想定されているエラーは、一通りブログに書いているので、それ以外のエラーである場合は、 内部で使用している Electron というフレームワークが原因で発生している可能性があります。 Electron が発生させるエラーは無数にあるため、全てを記載することはできません。 また、 Electron の開発チームが修正しない限り直らない場合がある点、ご理解願います。
なお、 Windows 7 は動作対象外です。
BOOTH の商品ページの動作環境で示しているとおり、 Windows 10 (サポート中の Version 20H1 以降) をご利用ください。