SANANEBLOG
GAS PR

【初心者向け】楽天市場ジャンルID簡易検索ツールの作成方法【GAS】

記事内に商品プロモーションを含む場合があります

はじめに

今回の記事ではGAS(Google Apps Script)と楽天APIを使用して楽天市場のジャンルIDを簡単にスプレッドシートに出力できるツールの作成方法を紹介します。

SANANE

楽天APIの取得も含めて作成時間は15分ほどです。GAS初心者の方でも作成可能です。

こんな人にオススメ

楽天のジャンルIDを知りたいけど簡単に検索できるツールが欲しい

GASを使って何かツールを作成してみたい

YouTubeの検索ワードから関連動画情報をスプレッドシートに出力するツールの作成方法【GAS】 はじめに 今回の記事ではGAS(Google Apps Script)を使用してYouTubeの動画情報を検索ワードから一括取得...
ジャンルから楽天の商品情報をランキング形式で一括取得するツールの作成方法【GAS】 はじめに 日々の業務やアフィリエイト活動で楽天市場の商品ランキング情報を定期的にチェックしている方、手動でのデータ収集に時間を取...

動作イメージ

Googleのスプレッドシート上で本ツールは動作します。

まず、「検索ジャンルID(A2セル)」に0を入れて[実行]ボタンをクリックします。

実行ボタンをクリックすると、「ジャンル名」の列と「ジャンルID」の列に検索したジャンルIDのサブジャンルが一覧で出力されます。

さらに表示されたジャンルIDを選択し、「実行」ボタンをクリックすることで一階層下のジャンルとジャンルIDを表示させることができます。

例として[メンズファッション]のジャンルIDである[551177]を使用しています。

これらを繰り返していくことで目的のジャンルのIDを知ることができます。

事前準備

今回のツールの作成に当たっては以下2つのものが必要となります。

  1. Google アカウント
  2. 楽天APIのアプリID

楽天APIの取得方法については下記URLを参照ください。途中で記入する「アプリ名」や「アプリURL」は任意のもので構いません。

取得が完了したら、[アプリID]を控えておいてください。

作成方法

スプレッドシートの新規作成

まず、Google スプレッドシートにアクセスします。

アクセスしたら、[新しいスプレッドシートを作成]> [空白]をクリックして新しいスプレッドシートを作成します。

スプレッドシートに移動したら、[A2]セルに[0] を半角で入力しておきます。

また、以下2つはこの後の作業で使用するため、パラメータを控えておいてください。

スプレッドシートのID

スプレッドシートの上部アドレスバーより、IDを控えておく。

コピーする場所は下記の「ここの値をコピーして控えておく」の箇所。

https://docs.google.com/spreadsheets/d/ここの値をコピーして控えておく/edit#gid=0

シート名

今回使用するスプレッドシートのシート名。

特に変更していなければ「シート1」を控えておいてください。

GASの設定

スプレッドシート上部バーの[拡張機能]>[Apps Script]をクリックします。新しいタブが開きます。

ここから、GAS上でコードを作成します。もともと記載してある以下コードは削除します。

function myFunction() {

}

削除したら、以下コードをコピーしてそのまま貼り付けてください。

var SPREADSHEET_ID = "YOUR_SPREADSHEET_ID"; // スプレッドシートのIDを設定
var SHEET_NAME = "シート1"; // 任意のシート名を設定
var API_KEY = "YOUR_RAKUTEN_API_KEY"; // 楽天のAPIキー(アプリID)を設定

function fetchRakutenSubGenres() {
  var ss = SpreadsheetApp.openById(SPREADSHEET_ID);
  var sheet = ss.getSheetByName(SHEET_NAME);

  // A1セルにヘッダー「検索ジャンルID」を設定
  sheet.getRange("A1").setValue("検索ジャンルID");

  var parentGenreId = sheet.getRange("A2").getValue(); // A2セルからジャンルIDを取得
  
  if (parentGenreId === null || parentGenreId === undefined) {
      Logger.log("A2セルにジャンルIDが指定されていません。");
      return;
  }

  // B列とC列のデータを消去
  sheet.getRange("B:C").clearContent();

  // 出力結果のヘッダーを設定
  sheet.getRange("B1").setValue("ジャンル名");
  sheet.getRange("C1").setValue("ジャンルID");
  
  var data = fetchSubGenres(parentGenreId); // 指定されたジャンルIDのサブジャンルを取得
  
  // ジャンル名とジャンルIDをスプレッドシートのB列とC列に出力
  sheet.getRange(2, 2, data.length, 2).setValues(data); // B2セルから出力開始
}


function fetchSubGenres(genreId) {
  var url = "https://app.rakuten.co.jp/services/api/IchibaGenre/Search/20140222?format=json&genreId=" + genreId + "&applicationId=" + API_KEY;
  
  var response = UrlFetchApp.fetch(url);
  var json = JSON.parse(response.getContentText());
  var genres = json['children'];

  var data = [];
  for (var i = 0; i < genres.length; i++) {
    var genreName = genres[i]['child']['genreName'];
    var subGenreId = genres[i]['child']['genreId'];
    data.push([genreName, subGenreId]);
  }

  return data;
}

この時、1行目から3行目の” ”で囲われた部分を先ほど控えておいたパラメータに置き換えます。

  1. YOUR_SPREADSHEET_ID: スプレッドシートのID
  2. SHEET_NAME: シート名
  3. YOUR_RAKUTEN_API_KEY: 楽天APIのアプリID

それぞれ①から③まで記入が完了したら、Apps Script 上部バーの[プロジェクトを保存]をクリックして保存します。

GASの実行

Apps Script 上部バーの[▶実行]をクリックします。最初のスクリプトの実行には権限が必要となるため、[承認が必要です]というモーダルが表示されたら、

[権限を確認]>[表示されているGoogleアカウント]>[詳細]>[無題のプロジェクト(安全ではないページ)に移動]>[許可]まで移動します。クリック後GASが実行されます。

ボタンの作成

再度スプレッドシートのタブに戻ります。

Google スプレッドシートを開き、上部メニューの [挿入] > [図形描画] をクリックします。

好きな図形を選択し、スプレッドシート上の任意の位置に配置します。この図形がボタンとなります。

ボタン(図形)を右上の…をクリックし、[スクリプトを割り当て] をクリックします。

開いたダイアログボックスに 以下を入力し[確定]をクリックします。

fetchRakutenSubGenres

以降は作成されたボタンをクリックすることで、簡単にプログラムを実行することができます。

注意点

楽天APIの呼び出し回数には上限が定められているため、実行回数が多い場合は途中で動作が停止する場合があります。

サブジャンルの検索まで終わって最初から再度検索したい場合は、[検索ジャンルID]に0を入力して実行してください。

GASおすすめ本

GASをもっと勉強したい!ほかにも自分で何か作成したい!という方には以下がおすすめです。