99designs / sipht
A PHP client for the Sift Science REST API
Installs: 33 185
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 75
Forks: 1
Open Issues: 0
Requires
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- phpunit/phpunit: ~3.7.0
This package is not auto-updated.
Last update: 2023-06-10 09:12:38 UTC
README
A PHP client for the Sift Science REST API.
Note: Sift Science now offer their own PHP bindings here.
This client supports the three basic operations exposed by the Sift API: posting events, labelling users and fetching scores.
The currently supported API version is v203
.
Instantiating a client
Interactions with the API occur via Sift\Client
. You instantiate a client by
passing your API key to its constructor:
$client = new Sift\Client('my-api-key');
The following errors may be thrown by any client request:
-
Sift\Exception\BadRequestException
: HTTP 40x; the request was rejected by the API -
Sift\Exception\ServerErrorException
: HTTP 50x; the API endpoint suffered some internal problem -
Sift\Exception\HttpException
: any other exception generated in the course of making the HTTP request (e.g. too many redirects)
Posting events
Create instances of Sift\Event
, e.g.:
$event = new Sift\Event(array( '$type' => Sift\Event::TYPE_TRANSACTION, '$user_id' => '1234', // ... ));
Alternatively, factory constructors are provided for each event type:
$event = Sift\Event::transactionEvent(array( '$user_id' => '1234', // ... ));
Then post the event via Sift\Client::postEvent()
:
$response = $client->postEvent($event);
See https://siftscience.com/docs/references/events-api for more information on posting event data.
Labelling users
Create label objects using the factory methods of Sift\Label
, e.g.:
// Label a user as fraudulent, optionally specifying reason codes and an explanation: $reasons = array(Sift\Label::REASON_SPAM); $label = Sift\Label::bad($reasons, 'User engaged in phishing attack') // Alternatively, correct a false positive by labelling a user as non-fraudulent: $good = Sift\Label::good('Mistakenly identified as fraudulent');
Then post the event via Sift\Client::labelUser()
:
$response = $client->labelUser('some-user-id', $label);
See https://siftscience.com/docs/references/labels-api for more information on labelling users.
Fetching scores
Fetch fraud score data for a user via Sift\Client::userScore()
:
$score = $client->userScore('some-user-id');
This returns an instance of Sift\Score
. Note that if no events have been
captured for the given user, a Sift\Exception\ScoreException
will be thrown.
See https://siftscience.com/docs/getting-scores for more information on fetching user fraud scores.