nvuln / tiktokshop-php
Unofficial Tiktok Shop API Client in PHP
Installs: 3 661
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^7.2|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.3
Requires (Dev)
- phpunit/phpunit: ^8|^9
README
Tiktok Shop API Client is a simple SDK implementation of Tiktok Shop API.
This package used Legacy API version (pre-Sept 2023). More detail here: https://partner.tiktokshop.com/docv2/page/64f198f74830a5028854c106
If you looking for API version 202309, please install package ecomphp/tiktokshop-php
Installation
Install with Composer
composer require nvuln/tiktokshop-php
Configure TiktokShop PHP Client
use NVuln\TiktokShop\Client; $app_key = 'your app key'; $app_secret = 'your app secret'; $client = new Client($app_key, $app_secret);
Enable sandbox mode if you want to test the client
$client->useSandboxMode();
Grant token
There is a Auth class to help you getting the token from the shop using oAuth.
$auth = $client->auth();
- Create the authentication request
$_SESSION['state'] = $state = str_random(40); // random string $auth->createAuthRequest($state);
If you want the function to return the authentication url instead of auto-redirecting, you can set the argument $return (2nd argument) to true.
$authUrl = $auth->createAuthRequest($state, true); // redirect user to auth url header('Location: '.$authUrl);
- Get authentication code when redirected back to
Redirect callback URL
after app authorization and exchange it for access token
$authorization_code = $_GET['code']; $token = $auth->getToken($authorization_code); $access_token = $token['access_token']; $refresh_token = $token['refresh_token'];
- Get authorized Shop ID
$access_token = $token['access_token']; $client->setAccessToken($access_token); $authorizedShopList = $client->Shop->getAuthorizedShop(); // extract shop_id from $authorizedShopList
Refresh your access token
Access token will be expired soon, so you need refresh new token by using
refresh_token
$new_token = $auth->refreshNewToken($refresh_token); $new_access_token = $new_token['access_token']; $new_refresh_token = $new_token['refresh_token'];
Usage API Example
You need
access_token
andshop_id
to start using TiktokShop API
$client = new Client($app_key, $app_secret); $client->setAccessToken($access_token); $client->setShopId($shop_id);
- Get product list: api document
$products = $client->Product->getProductList([ 'page_size' => 50, ]);
- Get order list: api document
$orders = $client->Order->getOrderList([ 'order_status' => 100, // Unpaid order 'page_size' => 50, ]);
Webhook
Use webhook to receive incoming notification from tiktok shop
$webhook = $client->webhook();
or manually configure the webhook receiver
use NVuln\TiktokShop\Webhook; use NVuln\TiktokShop\Errors\TiktokShopException; $webhook = new Webhook($client); try { $webhook->verify(); $webhook->capture($_POST); } catch (TiktokShopException $e) { echo "webhook error: " . $e->getMessage() . "\n"; }
echo "Type: " . $webhook->getType() . "\n"; echo "Timestamp: " . $webhook->getTimestamp() . "\n"; echo "Shop ID: " . $webhook->getShopId() . "\n"; echo "Data: \n"; // data is array print_r($webhook->getData());