This is a PHP Wrapper for the Xing API based on guzzle 6. It simplifies the process of authenticating and requesting permission.
The best way to install Xing SDK is through composer:
The best way to install php-sdk-for-XING is through composer:
-
Download the
composer.phar
executable or use the installer.$ curl -sS https://getcomposer.org/installer | php
-
add the following to your composer.json
{ "require": { "bahuma/xing-php-sdk": "dev-master" } }
or just run
$ composer require bahuma/xing-php-sdk
-
Run Composer:
php composer.phar install
And you should be done.
You can find an advanced example in the file sample.php
.
I recommend open this file and then read on.
To get an access token you first have to register your application. Head over to https://dev.xing.com and register yourself for a Xing application to get the consumer key/secret which you have to use with this package.
Then you have to call the following functions in this order:
-
getRequestToken
Insert your
consumer_key
and yourconsumer_secret
into the config array.Leave the
token
andtoken_secret
blank.Then create a new XingSdk Object with this config.
$config = [ 'consumer_key' => CONSUMER_KEY, 'consumer_secret' => CONSUMER_SECRET, 'token' => '', 'token_secret' => '', ]; $xingSdk = new XingSDK($config);
Then call the function with an url where the users are being redirected to after accepting the permissions. This URL is the callback-url.
$result = $xing_api->getRequestToken("http://dev.bahuma.io/xing2?page=redirect");
The function returns an array with three values.
Save
request_token
andrequest_token_secret
temporary. You'll need them in the next step.Redirect the user to the
authorize_url
. This is the page where the user clicks "accept". -
getAccessToken
This function should be executed at the callback-url.
Insert your
consumer_key
and yourconsumer_secret
into the config array.Insert the
request_token
andrequest_token_secret
from the previous field into the config array.Then create a new XingSdk Object with this config.
$config = [ 'consumer_key' => CONSUMER_KEY, 'consumer_secret' => CONSUMER_SECRET, 'token' => $the_temporary_saved_request_token, 'token_secret' => $the_temporary_saved_request_token_secret, ]; $xingSdk = new XingSDK($config);
Then call the function using the value of the GET-Parameter
oauth_verifier
, which has been set by XING.$result = $xing_api->getAccessToken($_GET['oauth_verifier']);
The function returns an array containing the
access_token
and theaccess_token_secret
for the user, which has logged in. Save these values in your database or somewhere else where you can access them later.
Now that you have obtained an access token, you can call the API. For example let's get the profile details of the user, which has logged in.
-
Insert your
consumer_key
and yourconsumer_secret
into the config array. Insert theaccess_token
andaccess_token_secret
from the user, which you have saved in your database,into the config array.$config = array( 'consumer_key' => 'abc123456789xyz', 'consumer_secret' => 'abc123456789xyz', 'token' => $access_token_from_my_database, 'token_secret' => $access_token_secret_from_my_database, );
-
Create a new XingSDK Object.
$xingSdk = new XingSDK($config);
-
Get the Guzzle Client from the XingSDK Object.
$xingClient = $xingSDK->getClient();
-
Make the request.
// "users/me" is the endpoint of the Xing-API. See https://dev.xing.com/docs/resources $response = $xingClient->get('users/me');
-
Bonus: Get the request in a usable format.
$beautiful_response = XingSDK::decodeResponse($response); print_r($beautiful_response);
And that's it.
For help how to use other request methods (GET/POST/PUT/DELETE/PATCH) or send content with your request, see the Guzzle Documentation.