php-stack-api
php-stack-api is a php SDK for StackExchange api version 2.2. Now you can easily access and hanlde all of StackApps Apis. Lets enjoy :), (*1)
Requirements
Installation
To install this package with your project, just run this command in your terminal from project root., (*2)
composer require nahid/php-stack-api
Configurations
After installation complete successfully, you have to configure it correctly. This package is also Laravel compatible., (*3)
Laravel
Open config/app.php and add this line end of the providers array, (*4)
Nahid\StackApis\StackApiServiceProvider::class,
and then run this command in your terminal to publish config file, (*5)
php artisan vendor: publish --provider="Nahid\StackApis\StackApiServiceProvider"
When you run this command stackapi.php config file will be copy config directory of your project. Now open app/stackapi.php and file the credentials with your StackApps application., (*6)
return [
'client_id' => 1234,
'client_secret' => 'application-client-secret',
'key' => 'application-key-value',
'redirect_uri' => 'http://example.com/redirect-uri',
];
Pure PHP Project
There are no special configuration for pure PHP project. You have to pass configuration data when the class is instantiated., (*7)
require 'vendor/autoload.php';
use Nahid\StackApis\StackApi;
$config = [
'client_id' => 1234,
'client_secret' => 'application-client-secret',
'key' => 'application-key-value',
'redirect_uri' => 'http://example.com/redirect-uri',
];
$stackApi = new StackApi($config);
Usage
Its has a lots of functionalities. When all of these are configured, you just use it like what you what., (*8)
At first you need to authenticate an user with your project. So make a authentication link., (*9)
<a href="<?= get_stack_api_auth_url(); ?>">Authenticate</a>
Its make a authentication url for StackExchange and get access_token with your redirect_url. Now you are an authorized user and access all API from this package., (*10)
Get Currently Authenticated Users Data
API URI: /me, (*11)
For Laravel
$me = StackApi::me()->get();
Pure PHP
$stackApi = new StackApi($config);
$me = $stackApi->me()->get();
API URI: /users/{ids}, (*12)
For Laravel
$me = StackApi::users(1234)->get();
Pure PHP
$stackApi = new StackApi($config);
$me = $stackApi->users(1234)->get();
Here all of these data are Objects. So you can easily handle it., (*13)
The Easy Way
This package is well formatted as like as RestAPI URI. Really you amazed to see it., (*14)
For example, you want to get data where URI is /users/{ids}/comments so the method will look like these, (*15)
$data = StackApi::users($id)->comments()->get();
Or, if the URI is /users/{id}/network-activity so the method will be, (*16)
$data = StackApi::users($id)->networkActivity()->get();
Note: 1. every URI you can call as PHP method chaining as per URI format.
2. If you have a hyphen (-) separated URI, it will transform to camel case(camelCase) when you called as a method
3. Every URI parameter goes to method parameter as per URI format., (*17)
Here the final example, if you have a URI like /badges/{ids}/recipients, (*18)
$data = StackApi::badges($id)->recipients()->get();
Available Methods
makeAuthUri()
getAccessToken()
info([$site[, $sort]])
me()
users($ids)
user($id)
get([$site[, $page[, $pageSize[, $sort[, $order[, $dateRange[, $minDate]]]]]]])
isExpired()
destroyAccessToken()
For more about StackApps API you can read documentation, (*19)
Thank you :), (*20)