4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AppStoreをスクレイピングしてレーティングをSlackへ定期通知する

Posted at

前述

公開しているアプリのレーティングの変化に気づけないため、AppStoreのWebサイトをスクレイピングしてレーティングを取り出しSlackへ通知することにしました

実装

Google スプレッドシートを作成し、ツール > スクリプト エディタを選択

スクリーンショット 2020-03-03 22.15.42.png

スクリプト エディタでコーディング

スクリーンショット 2020-03-03 22.17.04.png

トリガーを追加

スクリプト エディタ上の時計アイコンをクリック
以下のようにトリガーを作成して完了

スクリーンショット 2020-03-03 22.19.33.png

実際のソース

function sendRatingCount() {
  var ratingCount = fetchRatingCount();
  if (ratingCount == null) {
    return;
  }
  
  var now = new Date();  
  var date = Utilities.formatDate(now, 'Asia/Tokyo', 'yyyy年MM月dd日');
  
  sendSlack(date +  "\n" + ratingCount);    
}

function fetchRatingCount() {
  var response = UrlFetchApp.fetch("https://apps.apple.com/jp/app/stockey/id1407877357");
  var responseCode = response.getResponseCode();
  if (responseCode != 200) {
    return null;
  }
  
  var contentText = response.getContentText("utf-8");
  var regexp = /<figcaption class="we-rating-count star-rating__count">(.*?)<\/figcaption>/;
  try {
    var ratingCount = contentText.match(regexp);
    return ratingCount[1];   
  } catch (e) {
    return null;
  }
}

function sendSlack(text) {
   var payload = {
     "text" : text
   };
  
   var options = {
     "method" : "post",
     "muteHttpExceptions": true,
     "payload" : JSON.stringify(payload)
   };
  
   UrlFetchApp.fetch("https://hooks.slack.com/services/.....", options);
}

参考

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?