Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google Play のレビューを自動通知する
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hiroshi Kurokawa
October 22, 2014
Technology
1.2k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Google Play のレビューを自動通知する
Hiroshi Kurokawa
October 22, 2014
More Decks by Hiroshi Kurokawa
See All by Hiroshi Kurokawa
ART of Q
hkurokawa
3
1.2k
Chasing TransactionTooLargeException in The Wild
hkurokawa
0
520
Code Review as a Collaborative Journey
hkurokawa
3
1.1k
Room 2.1
hkurokawa
2
960
Introduction to Q#
hkurokawa
0
130
Surviving a discontinuous world
hkurokawa
1
3k
Making onActivityResult More Easy
hkurokawa
1
400
RxJava実践入門
hkurokawa
2
690
How to start a podcast
hkurokawa
1
440
Other Decks in Technology
See All in Technology
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
180
FPC(フレキシブル)基板にZephyr実装してみた。
iotengineer22
0
120
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
410
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
0
200
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
1.3k
When Platform Engineering Meets GenAI
sucitw
0
130
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
13
5.1k
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
240
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
150
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
150
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
130
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
230
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Writing Fast Ruby
sferik
630
63k
Building AI with AI
inesmontani
PRO
1
1.1k
Utilizing Notion as your number one productivity tool
mfonobong
4
320
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
780
Making the Leap to Tech Lead
cromwellryan
135
9.9k
How to Ace a Technical Interview
jacobian
281
24k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
New Earth Scene 8
popppiees
3
2.3k
Chasing Engaging Ingredients in Design
codingconduct
0
220
Transcript
Google Play のレビュー を 自動通知する 黒川 洋 / @hydrakecat 株式会社
Gunosy
アプリのレビュー 毎日チェックしてますか? 公開直後は頻繁に見るけれど、 毎日見るのは面倒だったり そもそも、 自分1 人しか見ていなかったり ( 他の人も見てほしい) 罵詈雑言が並べられていて
SAN 値がガリガリ削られたり ( 小声) とはいえ、 貴重なユー ザー からのフィー ドバックなのでちゃ んと見ておきたい そうだ、 チャットに自動で投稿しよう (ChatOps!)
Google Play のレビュー は gsutil で取得できます gsutil とは Google Cloud
Storage のコマンドライン・ インタフェー ス。 S3 とのやりとりもできる。 らしい。 レビュー は、 この gsutil じゃないと取得できません。
インストー ルと設定方法 pip でインストー ル セットアップ あとは指示に従うだけ。 かんたん。 設定が済んだら以下のコマンドを実行してみましょう。 詳しくは
Qiita に書きました $ sudo pip install gsutil $ gsutil config $ gsutil ls gs://<report bucket ID>/reviews/ $ gsutil cp -r "gs://<report_bucket_ID>/reviews/reviews_<app_package_name>*" /your/local/dir Android - アプリのレビュー を HipChat に投稿する - Qiita
ハマりどころ を開いてもプロジ ェクトが1 つもないかもしれませんが、 適当なプロジェク トを作れば良いようです。 レポー トバケット ID は、
レビュー ペー ジの一番下にありま す。 なぜか gsutil rsync コマンドを使っても差分取得できない ( 要調査) ダウンロー ドしたファイルの先頭には BOM (U+FEFF) が入 っているので必要なら除去しないといけない https://cloud.google.com/console#/project
次は自動化だ 基本的な戦略 プログラム書くの面倒な色々 と再利用したいので Unix コマ ンドだけで済ませる レビュー を毎回全部ダウンロー ドして前回との差分をとる
↑ もうちょっと工夫できるかも 差分はそんなに凝らない( 以前のレビュー が更新された場 合は新規と同じように扱う) CSV ファイルを見る限り1 レコー ド1 行なので、 差分出力は diff 使えばいける? まず新しいレコー ドを出力するだけのスクリプトを作っ て、 それを整形して投稿するスクリプトは別に作る
エラー 処理とか細かい処理を抜くと、 だいたいこんな感じ。 新しいレコー ドの出力 ソー スコー ドは にあります。 Gist
nkf -w ${file1} | sort > ${tmp1} nkf -w ${file2} | sort > ${tmp2} comm -13 ${tmp1} ${tmp2} nkf を使って BOM を除去 diff ではなく comm を使用。 新しい方(tmp2) に含まれて いる行のみを表示
だいたいこんな感じ。 チャットへの投稿 ソー スコー ドは にあります。 Gist printNewReviews.sh ${backupdir} .
| awk -F"," '{print $7 " Star " $9 " " $10 " " $11 " " $15}' | while read msg; do encoded=$(echo "\"${msg}\"" | jq -a '.') curl -s -H 'Content-type: application/json' -d "{\"message\": ${encoded}}" "https://api.hipchat.com/v2/room/ done 前回のレビュー が保存されているディレクトリ ${backupdir} とカレントディレクトリの CSV を比較 awk で整形して、jq で ASCII エンコー ドする(← コマンド 実行時のエスケー プをサボるため) 最後に curl で POST するだけ あとは、 これを cron などで定期実行すれば OK
投稿したところ 表示をもうちょっと頑張ります... URL もクリック可能になってほしい(HTML で出力すれば いける?)
改善点 チャット上の表示をもっとリッチに レビュー 数が増えると全ダウンロー ドはしんどいので工夫 が必要 ダウンロー ドした CSV を
gzip 圧縮しておくオプションがあ っても良いかも 消されたレビュー についても対応しておいた方が良い?