国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman 引用 使用 抖店的 sdk

webmanchin

問題描述

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
627 3 1
3個回答

liziyu
<?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);
    }
}

不知道這樣行不行!~

  • webmanchin 2024-12-26

    試了,你這樣不行
    Class "app\controller\AccessTokenBuilder" not found

nitron

正好抖店早期還在內(nèi)部測試的時候,找我們進行了合作,當(dāng)時是在它們官方下的SDK,沒有composer包,不好集成進自己的系統(tǒng)
如果你是在官方下的SDK包,你可以用下面這個步驟進行
截圖

  1. 到開放平臺下載SDK并解壓
  2. sdk-php同級新建一個sh文件,內(nèi)容如下:
#!/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! "
  1. 執(zhí)行后會生成douyin.zip
  2. 將douyin.zip解壓放到webman目錄下,我這里是跟app目錄同級
    5.修改composer.json,在psr-4的地方多加一行 "Douyin\": "douyin/", 我這里自己的大概是這樣,Namespace我用的是Douyin,你可以換成你喜歡的,如果需要換,自行修改上面腳本內(nèi)sed的Namespace
    "psr-4": {
      "Douyin\\": "douyin/"
    },
  3. 執(zhí)行 composer dumpautoload
  4. 可以直接在代碼里使用
    use Douyin\Api\xxxxxx;
    use Douyin\Core\xxxxxx;
    use Douyin\Param\xxxxxx;
  • webmanchin 2025-01-06

    謝謝,可以,按照你發(fā)的稍微修改下就可以了,有個問題 使用 sdk, token 是自動維護嗎? 我另外兩個進程也用這個sdk 獲取到的token 都一樣的,不知道是自動維護還是抖店就這么設(shè)計的。

  • nitron 2025-01-06

    有過期時間的,你看AceessTokenBuilder這個類就明白了

  • webmanchin 2025-01-06

    看到有過期時間,但是發(fā)現(xiàn)三個進程,同時用 AceessTokenBuilder ,獲取到的 token 刷新的token 還有到期時間都是一致的,所以問問是不是抖店就是這個機制

  • nitron 2025-01-07

    那你還是把token緩存起來使用吧,提前刷新就是了,抖店的項目我們沒跑在webman下

darcy

樓主你的加白是怎么過的?我們公司一直加不了白

  • liziyu 2025-01-04

    遇到過,加白甚是麻煩。

  • nitron 2025-01-06

    開發(fā)者后臺不是有加IP白名單的功能么?

  • liziyu 2025-01-06

    @nitron 運營常說的加白,不是開發(fā)者ip白名單!

  • darcy 2025-01-06

    我說的加白是類目加白

  • nitron 2025-01-06

    嗷,這樣,當(dāng)時是他們來找我們合作的,所以我們沒這個煩惱

  • webmanchin 2025-01-06

    你是問什么加白? 我正常開發(fā)沒遇到什么問題,就是有些接口不夠人性化,和接口開發(fā)文檔有些問題

??