Steamのゲーム名を出すスプレッドシート関数を作った

TL;DR

スプレッドシート付帯のApps Scriptに次の関数を埋め込むだけ

function STEAM_GAME_NAME(url, language = 'japanese') {
  try {
    // URLからapp idを取り出し
    const appId = url.match(/^https:\/\/.*\/app\/(\d+).*$/)[1];
    // steamのapiからアプリ情報を取得
    const res = UrlFetchApp.fetch(`http://store.steampowered.com/api/appdetails?appids=${appId}&l=${language}`).getContentText();
    // jsonに変換
    const resJson = JSON.parse(res);
    // 整形
    const appInfo = resJson[Object.keys(resJson)[0]];
    // nameを取り出し
    return appInfo.data.name;
  } catch(e) {
    // エラーの時はとりあえず問答無用でこの文字にする
    return `エラー: 取得できませんでした。`;
  }
}

設定方法

まずは適当にスプレッドシートにsteamのゲームのURLを貼っておく

サンプルのURLに意味はない

「拡張機能」の「Apps Script」をクリック

普段開かないよねApps Script

初期で入っている「myFunction」をバッサリ消して、上記のコード(function STEAM_GAME_NAME~)を張り付け

さようならmyFunction

あとは関数を突っ込むだけ。
「=STEAM_GAME_NAME($B3)」
ちなみに、第二引数に言語を指定できる。
「=STEAM_GAME_NAME($B3,"german")」
デフォルトは"japanese"


この記事が気に入ったらサポートをしてみませんか?