bitinflow / accounts
PHP bitinflow Accounts API Client for Laravel 5+
Installs: 1 136
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: ^7.4|^8.0
- ext-json: *
- firebase/php-jwt: ^6.0
- guzzlehttp/guzzle: ^6.3|^7.0
- illuminate/console: ~5.4|~5.7.0|~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/support: ~5.4|~5.7.0|~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0
- socialiteproviders/manager: ^3.4|^4.0.1
Requires (Dev)
- codedungeon/phpunit-result-printer: ^0.31
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^8.0|^9.0
README
PHP bitinflow Accounts API Client for Laravel 5+
Table of contents
Installation
composer require ghostzero/bitinflow-accounts
If you use Laravel 5.5+ you are already done, otherwise continue.
Add Service Provider to your app.php
configuration file:
Bitinflow\Accounts\Providers\BitinflowAccountsServiceProvider::class,
Event Listener
- Add
SocialiteProviders\Manager\SocialiteWasCalled
event to yourlisten[]
array inapp/Providers/EventServiceProvider
. - Add your listeners (i.e. the ones from the providers) to the
SocialiteProviders\Manager\SocialiteWasCalled[]
that you just created. - The listener that you add for this provider is
'GhostZero\\BitinflowAccounts\\Socialite\\BitinflowExtendSocialite@handle',
. - Note: You do not need to add anything for the built-in socialite providers unless you override them with your own providers.
/**
* The event handler mappings for the application.
*
* @var array
*/
protected $listen = [
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
// add your listeners (aka providers) here
'Bitinflow\\Accounts\\Socialite\\BitinflowExtendSocialite@handle',
],
];
Configuration
Copy configuration to config folder:
$ php artisan vendor:publish --provider="Bitinflow\Accounts\Providers\BitinflowAccountsServiceProvider"
Add environmental variables to your .env
BITINFLOW_ACCOUNTS_KEY=
BITINFLOW_ACCOUNTS_SECRET=
BITINFLOW_ACCOUNTS_REDIRECT_URI=http://localhost
You will need to add an entry to the services configuration file so that after config files are cached for usage in production environment (Laravel command artisan config:cache
) all config is still available.
Add to config/services.php
:
'bitinflow-accounts' => [ 'client_id' => env('BITINFLOW_ACCOUNTS_KEY'), 'client_secret' => env('BITINFLOW_ACCOUNTS_SECRET'), 'redirect' => env('BITINFLOW_ACCOUNTS_REDIRECT_URI') ],
Examples
Basic
$bitinflowAccounts = new Bitinflow\Accounts\BitinflowAccounts(); $bitinflowAccounts->setClientId('abc123'); // Get SSH Key by User ID $result = $bitinflowAccounts->getSshKeysByUserId(38); // Check, if the query was successfull if ( ! $result->success()) { die('Ooops: ' . $result->error()); } // Shift result to get single key data $sshKey = $result->shift(); echo $sshKey->name;
Setters
$bitinflowAccounts = new Bitinflow\Accounts\BitinflowAccounts(); $bitinflowAccounts->setClientId('abc123'); $bitinflowAccounts->setClientSecret('abc456'); $bitinflowAccounts->setToken('abcdef123456'); $bitinflowAccounts = $bitinflowAccounts->withClientId('abc123'); $bitinflowAccounts = $bitinflowAccounts->withClientSecret('abc123'); $bitinflowAccounts = $bitinflowAccounts->withToken('abcdef123456');
OAuth Tokens
$bitinflowAccounts = new Bitinflow\Accounts\BitinflowAccounts(); $bitinflowAccounts->setClientId('abc123'); $bitinflowAccounts->setToken('abcdef123456'); $result = $bitinflowAccounts->getAuthedUser(); $user = $userResult->shift();
$bitinflowAccounts->setToken('uvwxyz456789'); $result = $bitinflowAccounts->getAuthedUser();
$result = $bitinflowAccounts->withToken('uvwxyz456789')->getAuthedUser();
Facade
use Bitinflow\Accounts\Facades\BitinflowAccounts; BitinflowAccounts::withClientId('abc123')->withToken('abcdef123456')->getAuthedUser();
Documentation
Oauth
public function retrievingToken(string $grantType, array $attributes)
PaymentIntents
public function getPaymentIntent(string $id) public function createPaymentIntent(array $parameters)
SshKeys
public function getSshKeysByUserId(int $id) public function createSshKey(string $publicKey, string $name = NULL) public function deleteSshKey(int $id)
Users
public function getAuthedUser() public function createUser(array $parameters)
Development
Run Tests
composer test
BASE_URL=xxxx CLIENT_ID=xxxx CLIENT_KEY=yyyy CLIENT_ACCESS_TOKEN=zzzz composer test
Generate Documentation
composer docs
Join the bitinflow Discord!