TiktokOpenServiceProvider.php 1.3 KB
<?php

namespace Lackoxygen\TiktokOpen;

use Illuminate\Support\ServiceProvider;
use Lackoxygen\TiktokOpen\Base\Config;

class TiktokOpenServiceProvider extends ServiceProvider
{
    protected array $provides = ['mini', 'wap'];

    /**
     * @return void
     */
    public function boot()
    {
        if ($this->app->runningInConsole()) {
            $configPath = __DIR__ . '/../publish/tiktok.open.php';
            $this->publishes([
                $configPath => config_path('tiktok.open.php')
            ], 'lackoxygen-tiktok-open');
        }
    }

    /**
     * @return void
     */
    public function register()
    {
        foreach ($this->provides as $provide) {
            $alias = sprintf('tiktok.%s', $provide);
            $this->app->singleton($alias, function () use ($alias) {
                $provideConfig = \config($alias);
                $config = new Config();
                $config->setAppKey($provideConfig['app_key']);
                $config->setAppSecret($provideConfig['app_secret']);
                $config->setUrl('https://open.douyin.com');

                return (new Application($config))->wap();
            });
        }
    }

    /**
     * @return string[]
     */
    public function provides(): array
    {
        return $this->provides;
    }
}