見出し画像

【楽天ROOM】いいね半自動化で心も身体も健康に!

こんにちは!今日は楽天ROOM活動の要、いいね活動に関しての記事です。

楽天ROOMでは、いいね活動が余裕ではないという方も多いのではないでしょうか?
この活動を半自動化することで、自分の時間を保つと同時に、心身ともに健康的な生活を目指すことができます。

今回は、初心者でも簡単にいいね活動を半自動化できる方法を紹介しながら、その余裕を活用してスクワットに挑戦する方法をご紹介します。


なぜスクワットが必要なのか?

スクワットは「キングオブエクササイズ」と呼ばれるほど、体の多くの部分を動かして健康効果があります。

  1. 筋肉を一気に鍛える…特に大小腹筋や大腱筋などの大きな筋肉を鍛えられます。

  2. ジャンプ力が上がる…筋肉量を増やすことで体温を保つことができ、充実感が生まれます。

  3. 短時間で活動的にからだを動かせる…いいね活動の余裕時間を活用して簡単に始められる、場所を取らないのがポイントです。

正しいスクワットのやり方

スクワットの効果を最大化するためには、正しい姿勢で行うことが大切です。
下記の動画がとても参考になったので是非見てみてください!

スクワットが大事なことを習得できましたでしょうか?
それでは半自動化をしつつスクワットしていきます!

申し送り事項

  • 当スクリプト/ツールの使用により、お客様のアカウントに発生した問題等につきましては、一切の責任をおいませんので、ご了承ください。

半自動化の方法

活動の半自動化には、PCが必要です。特にChromeブラウザが動作する環境が揃っていると良いです。

必要な環境

  • スクリプト実行能力があるPC

  • Google Chromeがインストール済み

  • マートフォンやアプリでは実行できません

スクリプトの紹介

このスクリプトは画面上に表示されているいいねをしていない商品に対して現在のいいね上限まで順にいいねを実行します。
1時間のいいね数上限いいねするとその旨表示されスクリプトも一定時間後に停止します。

いいね上限に達すると表示されます


本手順はMac PCで実行していますがChromeが動く環境なら同じ用に動作すると思います。
Chromeバージョン: 132で正常動作を確認(2025/1現在の最新バージョン)
途中で止める場合はブラウザを閉じてください

  1. Chromeブラウザで自分の「楽天ROOM」アカウントにログインする

  2. 「みつける」からいいねしたい商品を検索する

  3. 「商品」タブを開く(商品とユーザーが表示されている画面の商品タブ)

  4. Chromeの右上の3点ボタンをクリック→「その他ツール」→「デベロッパーツール」

  5. コンソールタブを開く

    1. もし許可に関するメッセージが表示される場合は指示に従う

  6. 以下のスクリプトをコピー&ペーストし、エンターで実行します

エンターを押した直後、OKで実行を開始します
実行中の表示

ぽちっとな。完了には少し時間がかかりますので、ゆっくりスクワットを始めてください^^

javascript:(async()=>{
  // -----------------------
  // 設定値(必要に応じて変更)
  // -----------------------
  const MIN_WAIT_MS         = 1500;  // 各「いいね」クリック間の最小待機
  const MAX_WAIT_MS         = 2000;  // 各「いいね」クリック間の最大待機
  const SCROLL_WAIT_MS      = 5000;  // スクロール後に次の要素が読み込まれるまで待つ時間
  const MAX_SCROLL_TIMES    = 100;   // 最大スクロール回数(=実行ループ回数)
  const MAX_ERROR_THRESHOLD = 10;     // エラー検出上限(これを超えたら停止)

  // -----------------------
  // 実行確認ダイアログ
  // -----------------------
  if (!confirm("未いいねの要素をスキャンして自動で『いいね』していきます。よろしいですか?")) {
    alert("処理を中断します。");
    return;
  }

  // -----------------------
  // 実行ステータス用のオーバーレイを画面上に追加
  // -----------------------
  const overlay = document.createElement("div");
  Object.assign(overlay.style, {
    position: "fixed",
    top: "10px",
    right: "10px",
    padding: "8px 12px",
    backgroundColor: "rgba(0,0,0,0.7)",
    color: "#fff",
    fontSize: "14px",
    zIndex: 9999999,
    borderRadius: "4px",
    fontFamily: "sans-serif",
  });
  document.body.appendChild(overlay);

  // オーバーレイに文字を表示する関数
  function updateOverlay(message) {
    overlay.textContent = message;
  }

  // -----------------------
  // 汎用的な待機(ミリ秒)関数
  // -----------------------
  function delay(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
  }

  // -----------------------
  // メイン処理
  // -----------------------
  let totalLikedCount = 0;     // 全クリック成功数
  let errorCount = 0;          // エラー発生カウンタ

  try {
    for (let round = 1; round <= MAX_SCROLL_TIMES; round++) {
      window.scrollTo({ top: document.body.scrollHeight * 3, behavior: 'smooth' });
      await delay(SCROLL_WAIT_MS);
	  
      updateOverlay(`実行中... ${round}回目のスクロール
                     \n合計 ${totalLikedCount}件「いいね」済み
                     \nエラー発生: ${errorCount}回`);

      // 現在の「いいね」ボタンを再スキャン
      const allLikeButtons = [...document.querySelectorAll('.icon-like.right')];
      // まだ「いいね」していないボタンに限定
      const pendingLikeButtons = allLikeButtons.filter(btn =>
        !btn.classList.contains('isDisabled') &&
        !btn.classList.contains('isLiked')
      );

      // クリック対象が無ければこの時点で終了
      if (pendingLikeButtons.length === 0) {
        updateOverlay(`全て「いいね」済みです。総計 ${totalLikedCount}件`);
        break;
      }

      // pending の分だけクリックを順次実行
      for (const btn of pendingLikeButtons) {
        btn.click();
        totalLikedCount++;

        // 設定した時間の範囲でランダム待機
        const waitMs = MIN_WAIT_MS + Math.random() * (MAX_WAIT_MS - MIN_WAIT_MS);
        await delay(waitMs);

        // エラー画面(.view.ng-scope)の検出でエラーカウントを増やす
        if (document.querySelector('.view.ng-scope')) {
          errorCount++;
          if (errorCount >= MAX_ERROR_THRESHOLD) {
            throw new Error(`エラーが${errorCount}回発生したため処理を停止します。`);
          }
        }
      }

      // 1ラウンド終了後、下にスクロールして次の要素を読み込み
      window.scrollTo({ top: document.body.scrollHeight * 3, behavior: 'smooth' });
      await delay(SCROLL_WAIT_MS);
    }

    // 最大回数スクロールしても処理が終わらなかった or 終わった
    updateOverlay(`処理完了。合計 ${totalLikedCount}件「いいね」しました。`);
    alert(`処理完了しました。\n合計 ${totalLikedCount}件「いいね」しました。`);
  } catch (err) {
    updateOverlay(err.message);
    alert(err.message);
  } finally {
    // しばらく待ってからオーバーレイを消す:
    await delay(2000);
    overlay.remove();
  }
})();
  • スクリプトの調整可能なポイントについて

    • MIN_WAIT_MS, MAX_WAIT_MS - 次のいいねを実行するまでの最小間隔。1000msは1秒です。MAX_WAIT_MSの設定の間でランダムに時間を空けて実行します。早くするほどいいねをするスピードは上がりますが、環境の通信環境にも影響するため短すぎてもよくありません。短すぎると、楽天ROOM側の制限にもひっかかりますし、Botだと判定されてしまうかもしれません。もしデフォルトの設定でもエラーが出る場合は数字を徐々に増やしてみてください。

  • うまくいいねされない場合に試すこと

    • 最初に3回ぐらいスクロールを行っていますが、それでもいいね可能な商品がない場合は対象が見つからずいいねが実行されないことがあります。そのため初回商品リスト表示時にいいね可能な商品が1件でも表示されているのを確認する。されてなければ表示されるまで手動でスクロールする。検索ワードによっては表示される結果が少ないこともあるため確認する。お手数ですがご確認ください。

まとめ

楽天ROOMのいいね活動を半自動化することで、不要な時間を削り、その分を健康のために活用できるのは大きなメリットです!
(スクワットは本当に大事ですが、)自分に合った隙間時間活用方法を見つけて、心身共健康で快適な生活を追求しましょう!
この半自動化により、みなさんの快適な楽天ROOM活動につながると嬉しいです。

最後まで読んでいただきありがとうございました!

関連する楽天ROOM検証の記事


いいなと思ったら応援しよう!

AI副業検証中
サポートしていただけるととても嬉しいです!いただいたサポートは、AI副業や新たなチャレンジのための活動費として大切に使わせていただきます! 文章はまだまだですが、これからも真摯な記事を心がけるよう頑張って参ります!