webman 引用 使用 抖店的 sdk
我想實現(xiàn)在 webman 里面調(diào)用 抖店的函數(shù),怎么做?
抖店的sdk里面有個 autoload.php 文件
貼上這個文件部分代碼
<?php
//auto generated code
class autoload
{
public static function loadClass($class)
{
$rootPath = dirname(__FILE__);
$filename = $rootPath."/open/core/http/".$class.".php";
if(is_file($filename)) {
include $filename;
return;
}
$filename = $rootPath."/open/core/".$class.".php";
if(is_file($filename)) {
include $filename;
return;
}
$filename = $rootPath."/open/api/token/".$class.".php";
if(is_file($filename)) {
include $filename;
return;
}
$filename = $rootPath."/open/api/token/param/".$
還有個 example.php 文件
貼上這個文件的部分代碼
<?php
require "autoload.php";
include "open/api/materialgw/BinaryMaterialUploadAddressAuthParam.php";
include "open/api/materialgw/BinaryMaterialUploadAddressAuthRequest.php";
include "open/api/materialgw/BinaryMaterialUploadParam.php";
// ====API使用示例====
// $accessToken = AccessTokenBuilder::build("xxxx", ACCESS_TOKEN_SHOP_ID);
// 創(chuàng)建Request對象,假設(shè)調(diào)用的方法名稱是: demo.method
// $request= new DemoMethodRequest();
// 發(fā)起API調(diào)用
// $response = $request->execute(accessToken);
// ====SPI使用示例====
// 服務(wù)端調(diào)用spi接口時的鏈接參數(shù)
// $request = new DoudianOpSpiRequest();
// $param = $request->getSpiParam();
// $param->appKey = 'xxxxx';
// $param->paramJson = "{}";
// $param->sign = 'xxxxxxx';
// $param->signMethod = 'md5';
// $param->timestamp = '2006-01-02 15:04:05';
// 定義并注冊一個spi處理器
// $request->registerHandler(function ($context) {
// $paramJsonObj = $context->getParamJsonObject();
// var_dump($paramJsonObj);
//
// echo $paramJsonObj->order_id;
// echo $paramJsonObj->to_receiver_info->post_tel;
//
// $data = array();
// $data["order_id"] = "$paramJsonObj->order_id";
// $data["shop_id"] = "$paramJsonObj->shop_id";
// $context->setResponseData($data);
// $context->wrapSuccess();
// });
// 執(zhí)行處理器
// $response = $request->execute();
// 將response返回給服務(wù)器
// write return code here
<?php
namespace app\controller;
use support\Request;
use support\Response;
class DoudianController
{
public function __construct()
{
// 引入抖店 SDK 的 autoload.php
require_once __DIR__ . '/../../doudian-sdk/autoload.php';
}
public function demoMethod(Request $request): Response
{
// 示例: 創(chuàng)建 AccessToken
$accessToken = AccessTokenBuilder::build("xxxx", ACCESS_TOKEN_SHOP_ID);
// 創(chuàng)建 Request 對象
$request = new DemoMethodRequest();
// 發(fā)起 API 調(diào)用
$response = $request->execute($accessToken);
// 返回響應(yīng)
return response()->json($response);
}
}
不知道這樣行不行!~
正好抖店早期還在內(nèi)部測試的時候,找我們進行了合作,當(dāng)時是在它們官方下的SDK,沒有composer包,不好集成進自己的系統(tǒng)
如果你是在官方下的SDK包,你可以用下面這個步驟進行
#!/bin/sh
clear
root=$PWD
echo "Start process"
[ -d douyin ] && rm -rf douyin
mkdir douyin
cd douyin
cp -rp ../sdk-php/src/open/* .
dir=$PWD
[ -d param ] || mkdir param
cd "$dir/api"
echo "Processing api..."
for d in */ ; do
cd $d
[ -d param ] && mv param/* "$dir/param/" && rmdir param
[ -d data ] && mv data/* "$dir/core/" && rmdir data
mv *.php ../
cd ..
rmdir $d
done
sed -i '2a\namespace Douyin\\Api;\n' *.php
sed -i '/auto generated code/d' *.php
sed -i '4a\namespace Douyin\\Core\\DoudianOpClient;' *.php
sed -i '5a\namespace Douyin\\Core\\GlobalConfig;' *.php
php-cs-fixer -q fix .
echo "Processing param..."
cd "$dir/param"
sed -i '2a\namespace Douyin\\Param;\n' *.php
sed -i '/auto generated code/d' *.php
php-cs-fixer -q fix .
echo "Processing core..."
cd "$dir/utils"
mv * ../core/
rmdir "$dir/utils"
cd "$dir/core"
mv http/*.php .
rmdir http
sed -i '2a\namespace Douyin\\Core;\n' *.php
sed -i '/auto generated code/d' *.php
sed -i '4a\use \\Exception;\n' HttpClient.php
sed -i '4a\use Douyin\\Api\\RefreshTokenRequest;' AccessTokenBuilder.php
sed -i '5a\use Douyin\\Api\\CreateTokenRequest;' AccessTokenBuilder.php
sed -i '6a\use Douyin\\Param\\CreateTokenParam;' AccessTokenBuilder.php
sed -i '7a\use Douyin\\Param\\RefreshTokenParam;\n' AccessTokenBuilder.php
php-cs-fixer -q fix .
echo "Start packing"
cd $root
[ -f douyin.zip ] && rm douyin.zip
zip -r -ll -q douyin.zip ./douyin -x "*.cache"
rm -rf douyin
echo "Job done! "
"psr-4": {
"Douyin\\": "douyin/"
},
composer dumpautoload
use Douyin\Api\xxxxxx;
use Douyin\Core\xxxxxx;
use Douyin\Param\xxxxxx;
謝謝,可以,按照你發(fā)的稍微修改下就可以了,有個問題 使用 sdk, token 是自動維護嗎? 我另外兩個進程也用這個sdk 獲取到的token 都一樣的,不知道是自動維護還是抖店就這么設(shè)計的。
看到有過期時間,但是發(fā)現(xiàn)三個進程,同時用 AceessTokenBuilder ,獲取到的 token 刷新的token 還有到期時間都是一致的,所以問問是不是抖店就是這個機制
樓主你的加白是怎么過的?我們公司一直加不了白