必须提供“access_key”选项才能使用fixer.io

时间:2018-04-19 10:27:54

标签: php laravel fixer.io

对于货币转换我使用“florianv / laravel-swap”:“^ 1.1”库。 Florianv/Laravel-swap

由于Fixer.io已更改其实现,因此需要将access_key与请求一起传递,因此我收到此错误:“InvalidArgumentException:必须提供”access_key“选项才能使用fixer.io的 /var/www/project/project-files/vendor/florianv/exchanger/src/Service/Fixer.php:51 ”。

我注册并获得了access_key。 我使用composer更新了库,现在我可以在 vendor / florianv / exchanger / src / Service / Fixer.php 中看到三个常量。

const ACCESS_KEY_OPTION = 'access_key';
const LATEST_URL = 'http://data.fixer.io/api/latest?base=%s&access_key=%s';
const HISTORICAL_URL = 'http://data.fixer.io/api/%s?base=%s&access_key=%s';

要传递访问密钥,我尝试了这个:

我在config文件夹中有一个swap.php,它看起来像这样:

return [
    'options' => [
        'cache_ttl' => 86400, // 24 hours.
        'cache_key_prefix' => 'currency_rate'
    ],
    'services' => [
        'fixer' => true,
    ],
    'currency_layer' => [
        'access_key' => 'asdfas7832mw3nsdfa776as8dfa', // Your app id
        'enterprise' => true, // True if your AppId is an enterprise one
    ],
    'cache' => env('CACHE_DRIVER', 'file'),
    'http_client' => null,
    'request_factory' => null,
    'cache_item_pool' => null,
];

这还有一个被评论的选项,我启用并传递了access_key但它不起作用。 我还在'fixer =>下面的服务块中添加了它真正的”。

'currency_layer' => [
    'access_key' => 'asdfas7832mw3nsdfa776as8dfa'
]

同样在选项块中:

'options' => [
    'cache_ttl' => 86400, // 24 hours.
    'cache_key_prefix' => 'currency_rate',
    'access_key'=>'7ca208e9136c5e140d6a14427bf9ed21'
],

我尝试在config / services.php文件中添加access_key,但它也无效。

'fixer' => [
    'access_key'     => 'asdfas7832mw3nsdfa776as8dfa'
],

即使我尝试过,添加到env文件并从那里调用,但没有成功。我如何通过access_key,任何人都可以帮助我,这应该是什么方法。

1 个答案:

答案 0 :(得分:0)

vendor / florianv / exchanger / src / Service / Fixer.php - > 不要触及常量(这是我自己的错误)。

通过创建Builder传递options-array:

    $options = ['access_key'    => 'YourGeneratedAPIKeyAtCurrencyLayer'];
    $this->exchangeSwap = (new Builder($options))
      ->add('fixer', $options )
      ->build();

我希望我可以提供帮助; - )