Setup
require 'vendor/autoload.php';
use Onetoweb\Minox\Client;
use Onetoweb\Minox\Token;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Request;
// start session
$session = new Session();
$session->start();
// param
$clientNumber = 42;
$clientId = 'client_id';
$clientSecret = 'client_secret';
// setup client
$client = new Client($clientNumber, $clientId, $clientSecret);
// required for most but not all endpoint methods
$administrationId = 42
$client->setAdministrationId($administrationId);
// setup token update callback
$client->setTokenUpdateCallback(function(Token $token) use ($session) {
// store token
$session->set('token', [
'access_token' => $token->getAccessToken(),
'refresh_token' => $token->getRefreshToken(),
'expires' => $token->getExpires(),
]);
});
/**
* Authorization workflow
*/
// get request
$request = Request::createFromGlobals();
if ($session->get('token') !== null) {
// load token from storage
$storedToken = $session->get('token');
// build token
$token = new Token(
$storedToken['access_token'],
$storedToken['refresh_token'],
$storedToken['expires']
);
// set token
$client->setToken($token);
} elseif ($request->get('code')) {
// (optional) compare states
if ($request->get('state') !== $session->get('state')) {
throw new \Exception('states do not match');
}
// request token from code
$client->requestTokenFromCode($request->get('code'));
} else {
// get authorization url
$redirectUrl = 'https://www.example.com/';
$scope = [
'administration:read',
'administration:write',
];
// (optional) generate a state param
$state = bin2hex(random_bytes(16));
$session->set('state', $state);
$authorizationUrl = $client->getAuthorizationUrl($redirectUrl, $scope, $state);
// display authorization url
printf('<a href="%1$s">%1$s</a>', $authorizationUrl);
}
- Distance sale
- Accrual
- Invoice
- Payable
- Receivable
- Reporting
- Transaction line batch
- Transaction line
- VAT declaration
- Administration
- Budget
- Cost center
- Cost type
- Customer
- Customer type
- Document
- Item
- Item group
- Journal
- Ledger
- Mandate
- Payment term
- Profit loss balance
- Region
- Representative
- Supplier
- VAT
- Meta
- Ordering
- Other document
- Document text
- Email history
- Import Task
- Job
- Ocr
- Loket.nl
- Mollie
- Nmbrs
- Paragon
- Webhook