iOS App Storeの評価コメントをGASで取得してSpreadsheetに突っ込む

# About
- App Storeにユーザの方々から寄せられた評価コメントを取得するためのスクリプトです
- Google Apps Scriptは偉大。非エンジニアでもこれならできる。
- Spreadsheetに突っ込んだあとは、分類するなりPriority付けるなりステータス付けるなりお好きにどうぞ

# Ready
下準備です。

### 1. データを流し込みたいSpreadsheetを作っておく
Googleスプレッドシートを新規作成しておきます。
シート名をiOSとかにしておくといいかもしれません。
<img width="255" alt="スクリーンショット 2018-05-05 1.22.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/47849/9c889781-aacc-12b3-3f4f-f02fbe98f233.png">

### 2. Google Apps ScriptをGoogle Driveに接続して開く
[新規] -> [その他] -> Google Apps Scriptをクリックします。
![スクリーンショット 2018-05-05 1.17.06.png](https://qiita-image-store.s3.amazonaws.com/0/47849/f594ba01-eb77-900b-411c-2034eed7a3b5.png)

※初めて使う人はこのメニューがないかと思うので、 [+ アプリを追加] から追加しておきます
![スクリーンショット 2018-05-05 1.17.59.png](https://qiita-image-store.s3.amazonaws.com/0/47849/a09f4486-9821-8624-5fee-ac8b11b9be03.png)

### 3. 準備完了
Script Editorが立ち上がったと思います。以上で準備完了です。
<img width="909" alt="スクリーンショット 2018-05-05 1.26.54.png" src="https://qiita-image-store.s3.amazonaws.com/0/47849/72e4475e-bea6-d797-1eb1-9e8a1d0ec44d.png">


# Copy and Paste
こちらのコードをScript editorにコピペしてください。

```
// フィードのURL設定
var feedURL = "https://itunes.apple.com/COUNTRY_CODE/rss/customerreviews/id=APP_ID/sortBy=mostRecent/xml";

// Sheet&Data
var ss = SpreadsheetApp.openById('KEY').getSheetByName('SHEET_NAME');

function myFunction() {
   // フィードを取得
  var response = UrlFetchApp.fetch(feedURL);
 
  // XMLをパース
  var xml = XmlService.parse(response.getContentText());

  // namespace
  var namespace = xml.getRootElement().getNamespace();
  var appleNameSpace = xml.getRootElement().getNamespace("im"); 

  // 各データの要素を取得
  var entries = xml.getRootElement().getChildren("entry", namespace);
                                                 
  // 要素数を取得
  var length = entries.length;
  
  
  // setValuesメソッドに渡す配列定義
  var data = [];
  
  // 取得したデータをループさせる（1件目はアプリ情報だから除外するため i=1）
  for(var i = 1; i < length; i++) {
    // ワーク配列
    var args = [];

    // timestamp
    args.push(entries[i].getChildText("updated", namespace));
    
    // ratings
    args.push(entries[i].getChildText("rating", appleNameSpace));

    // title
    args.push(entries[i].getChildText("title", namespace));

    // content
    args.push(entries[i].getChildText("content", namespace));
 
    // setValues用配列にpush
    data.push(args);
  }

  // getRangeで範囲設定（開始行, 開始列, 終了行, 終了列）
  ss.getRange(1, 1, length, 4).setValues(data);
  
}
```

# Constants
定数の説明をします。

### 1. COUNTRY_CODE
どこの国での評価コメントがほしいか指定します。
日本なら `jp` と指定します。

### 2. APP_ID
調べたいアプリのStore URLから、この太字部分を抜き出して貼り付けます。
...itunes.apple.com/jp/app/facebook/id **284882215**?mt=8

### 3. KEY
データを突っ込みたいSpreadsheetのURLから、この太字部分を抜き出して貼り付けます。
...docs.google.com/spreadsheets/d/**2GDxJrp2plnwkXlWKyRCvF8Oqk3B2qG9q6ePJvUThVu0**/edit#gid=0


### 4. SHEET_NAME
僕は `iOS` と指定しています
ここのことです。
<img width="255" alt="スクリーンショット 2018-05-05 1.22.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/47849/ae9e3628-1241-243b-7f1a-27e33ca82239.png">


# Save & Run
適当なプロジェクト名を付けてScriptを保存し、実行します。
Spreadsheetを確認するとデータが入っているかと思います。
（問題あったら教えてください）

※あまり連続で実行すると403返ってくるかもしれません

# Reference
参考にした記事です。

- [iOS/Androidアプリのレビューを取得 @rsahara ](https://qiita.com/rsahara/items/c9d3743d926dd29a89e8)
- [スプレッドシートでXML情報を取得して表形式に出力する方法（後編） | てらこや.work](https://www.terakoya.work/gas-spreadsheet-get-xml-part2/)