PHP code example of wonnova / woost-gamification-php-sdk
1. Go to this page and download the library: Download wonnova/woost-gamification-php-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
wonnova / woost-gamification-php-sdk example snippets
// Create the client and inject a Credentials instance on it with your private key
$wonnovaClient = new \Wonnova\SDK\Connection\Client(
new \Wonnova\SDK\Auth\Credentials(['key' => 'AaBbCcDd123456'])
);
// After this point, you are able to perform requests to the API
try {
// Create a new user in your system
$user = new \Wonnova\SDK\Model\User();
$user->setUsername('john.doe')
->setProvider('my_company_name')
->setFullName('John Doe')
->setDateOfBirth(new \DateTime('1980-03-09 18:56:00'))
->setEmail('[email protected]');
$wonnovaClient->createUser($user);
// Once the user is created, the userId is populated if it wasn't previously set.
echo $user->getUserId();
// Make the user perform an action
// The userId can be used if you don't have access to the full User object
$actionCode = 'LOGIN';
$wonnovaClient->notifyAction($user, $actionCode);
// You can now get the list of your quests and the status of the user in each one of them
$quests = $wonnovaClient->getUserStatusInQuests($user);
// This method returns an iterable collection of Quest instances, each one of them with the list of QuestSteps
foreach ($quests as $quest) {
echo sprintf('Quest code: %s', $quest->getCode());
echo sprintf(
'Quest start date: %s',
$quest->getStartDate()->format('Y-m-d H:i:s')
);
// Get the quest steps
foreach ($quest->getQuestSteps() as $step) {
echo sprintf('Quest %s. Step type: %s', $quest->getName(), $step->getType());
echo sprintf('Quest %s. Step code: %s', $quest->getName(), $step->getCode());
echo sprintf(
'Did "%s" complete this step? %s',
$user->getFullName(),
($step->isCompleted() ? 'YES' : 'NO')
);
}
}
} catch (\Wonnova\SDK\Exception\ExceptionInterface $e) {
echo $e->getTraceAsString();
}
$memcached = new \Memcached();
$memcached->addServer('127.0.0.1', 11211)
$cacheAdapter = new \Doctrine\Common\Cache\MemecachedCache();
$cacheAdapter->setMemcached($memcached);
$wonnovaClient = new \Wonnova\SDK\Connection\Client(
new \Wonnova\SDK\Auth\Credentials(['key' => 'AaBbCcDd123456']),
'es',
$cacheAdapter
);
$method = 'GET';
$route = '/foo/bar/' . $userId;
// This response object is a GuzzleHttp\Message\ResponseInterface instance
$response = $wonnovaClient->connect($method, $route);
$data = json_decode($response->getBody()->getContents(), true);
// To send information in the body, like in POST and PUT requests, use the third argument like this
$response = $wonnovaClient->connect('POST', '/resource/create', [
'json' => [
'resourceId' => '123',
'foo' => 'bar'
]
]);
// Create a client instance
$wonnovaClient = new \Wonnova\SDK\Connection\Client(
new \Wonnova\SDK\Auth\Credentials(['key' => 'AaBbCcDd123456'])
);
// Create a mock subscriber
$mockSubscriber = new \GuzzleHttp\Subscriber\Mock([
// Add a response that will mock the authentication request
new \GuzzleHttp\Message\Response(
200,
[],
new \GuzzleHttp\Stream\Stream(fopen('data://text/plain,{"token": "foobar"}', 'r'))
),
// Add another response that will mock the request you want to test
new \GuzzleHttp\Message\Response(
200,
[],
new \GuzzleHttp\Stream\Stream(fopen('data://text/plain,...', 'r'))
),
]);
// Set the mock subscriber to the client instance
$wonnovaClient->getEmitter()->attach($mockSubscriber);
$wonnovaClient->getUsers(); // This won't perform a real HTTP request
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.