Simple library to track App Store reviews with Slack.
composer.phar require tjournal/reviewerNext require Composer's autoloader:
require 'vendor/autoload.php';You should use external database to store already sent reviews. We advice Redis with Predis library. Library should implement sismember, sadd, exists and set methods.
You need to create new Incoming webhook in Slack and change {APPID} with the real app id:
try {
$storage = new Predis\Client();
$reviewer = new TJ\Reviewer({APPID});
$reviewer->setStorage($storage);
$reviewer->setSlackSettings(['endpoint' => 'https://hooks.slack.com/services/ABCDE/QWERTY', 'channel' => '#reviews']);
$reviewer->start();
} catch (Exception $e) {
// handle errors
}Then add your script to crontab:
sudo crontab -e
*/15 * * * * php crontab.phpIf you want to track internal library errors you can use Monolog. Here is the easiest way:
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$monolog = new Logger('Reviewer');
$monolog->pushHandler(new StreamHandler('/tmp/reviewer.log', Logger::DEBUG));
$reviewer->setLogger($monolog);There is a way to change set of countries from whence Reviewer is getting fresh app's reviews.
try {
$reviewer = new TJ\Reviewer({APPID});
...
$reviewer->countries = ['ru' => 'Russia', 'us' => 'US', 'fi' => 'Finland', 'fr' => 'France'];
$reviewer->start();
} catch (Exception $e) {
// handle errors
}