app-reviews

This module help you to have access to latest reviews in App Store and Google Play Store

Usage no npm install needed!

<script type="module">
  import appReviews from 'https://cdn.skypack.dev/app-reviews';
</script>

README

App-Reviews

NPM Version Downloads

App-Reviews is a nodejs app that monitors App Store and Google Play reviews.

This project is heavily inspired by ReviewMe.

What changed?

  • Using axios instead request.
  • Refactor to have asynchronous code base.
  • Give an option to be able to use any data source e.g. Firebase Storage

Installation

npm install app-reviews

Usage

Three functions need to be define to make this library work.

const storePublishedReviewsList = async (reviews: PublishedReviews) => {
    writeFileSync("./published_reviews.json", JSON.stringify(reviews), { flag: 'w' })
}

const retrivePublishedReviewsList = async (): Promise<PublishedReviews> => {
    try {
        var source = readFileSync("./published_reviews.json", "utf8")
        return JSON.parse(source)
    } catch {
        return {}
    }
}

// by default generated messages are compatible with slack's message formatting.
const onNewMessageAvailable = async (messages: string[]) => {
    var requets = messages.map(message => axios.post(
        { SLACK_WEBHOOK },
        message)
    )
    await Promise.all(requets)
}

Config

App-Review requires a config file. A simple config looks something like:

const config = {
    apps: [
        { id: "[android-package-name]", showAppIcon: true, publisherKey: "./api-key.json" },
        { id: "[app-store-id]", showAppIcon: true, regions: ["us"] }
    ],
    storePublishedReviewsList,
    retrivePublishedReviewsList,
    onNewMessageAvailable
}

Options

  • apps: A list of apps to fetch reviews for. See App Options below

  • storePublishedReviewsList: Function to store list of latest reviews list into the data source

  • retrivePublishedReviewsList: Function to retrive list of latest reviews list from the data source

  • onNewMessageAvailable: Function that receive list of new reviews message

  • verbose: When enabled, log messages will be printed to the console

App options

  • appId: The Android app package name, or the iOS app ID.

  • regions: (iOS Only) The ISO 3166-2 regions to fetch reviews for (use all to include all regions)

  • appIcon: An image url to use for the bot avatar

  • generateMessageFromReview: (optional) Function that generate message for each review

  • showAppIcon: Determines if app icon will be displayed (overrides botIcon)

  • publisherKey: (Android Only) The path to a Google Play Publisher private key (.json file). Used for accessing the Google Play Publisher API.

Google Play Publisher Key

App-Reviews requires access to the Google Play Publisher API to fetch reviews. You need to supply App-Reviews with a Google Play Publisher API private key:

  • Go to the Google Play Developer Console -> Settings -> API Access

  • Create a Google Play Android Developer project

  • Create a Service Account with "Service Accounts" -> "Service Account User" role

  • Download the private key (.json)

  • Supply the path to the private key in the config.json