You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel 8中安装并配置Finnhub.io的finnhub/client包

Finnhub Client Laravel 8 完整配置流程

1. 配置 Finnhub 密钥

  • 打开项目根目录的.env文件,在末尾添加配置项:
FINNHUB_API_TOKEN=你在Finnhub官方申请的API密钥
  • 可选(推荐):打开config/services.php,添加finnhub专属配置段,统一管理第三方服务配置:
'finnhub' => [
    'token' => env('FINNHUB_API_TOKEN'),
],

2. 服务容器绑定(符合Laravel规范,无需重复初始化实例)

  • 运行命令生成自定义服务提供者:php artisan make:provider FinnhubServiceProvider
  • 打开生成的app/Providers/FinnhubServiceProvider.php,修改register方法:
<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Finnhub\Configuration;
use Finnhub\Api\DefaultApi;
use GuzzleHttp\Client;

class FinnhubServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->singleton(DefaultApi::class, function ($app) {
            $config = Configuration::getDefaultConfiguration()
                ->setApiKey('token', config('services.finnhub.token'));
            return new DefaultApi(new Client(), $config);
        });
    }
}
  • 打开config/app.php,在providers数组中注册刚创建的服务提供者:
'providers' => [
    // 其他原有系统服务提供者保持不变
    App\Providers\FinnhubServiceProvider::class,
],

3. 调用使用示例

Laravel已经自动加载了composer包,不需要手动引入vendor/autoload.php,直接按以下方式调用即可:

依赖注入方式(推荐)

<?php

namespace App\Http\Controllers;

use Finnhub\Api\DefaultApi;

class FinnhubTestController extends Controller
{
    public function getUsStockSymbols(DefaultApi $finnhubClient)
    {
        $symbols = $finnhubClient->stockSymbols("US");
        dd($symbols);
    }
}

临时手动初始化方式

如果不需要全局绑定,可在需要使用的位置直接初始化:

<?php

use Finnhub\Configuration;
use Finnhub\Api\DefaultApi;
use GuzzleHttp\Client;

$config = Configuration::getDefaultConfiguration()->setApiKey('token', config('services.finnhub.token'));
$client = new DefaultApi(new Client(), $config);
print_r($client->stockSymbols("US"));

内容的提问来源于stack exchange,提问作者Epigie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:18:05