Php 如何将卷曲转换为Guzzle GET

Php 如何将卷曲转换为Guzzle GET,php,laravel,curl,guzzle,Php,Laravel,Curl,Guzzle,首先:堆栈溢出中的第一个问题,非常荣幸!:D 如何将下面的卷曲转化为口吻 curl -u USER_KEY:USER_SECRET https://api.apiexample.com/example/oauth/oauth?grant_type=client_credentials 我尝试了以下操作,但始终得到403-禁止的错误: $res = $client->request('GET', 'https://api.apiexample.com/example/oauth/o

首先:堆栈溢出中的第一个问题,非常荣幸!:D

如何将下面的卷曲转化为口吻

curl -u USER_KEY:USER_SECRET https://api.apiexample.com/example/oauth/oauth?grant_type=client_credentials
我尝试了以下操作,但始终得到403-禁止的错误:

    $res = $client->request('GET', 'https://api.apiexample.com/example/oauth/oauth',[
        'auth' => ['USER_KEY', 'USER_SECRET'],
        'header' => [
                'Content-Type' => 'application/x-www-form-urlencoded'
        ],
        'form_params' => [
            'grant_type' => 'client_credentials'
        ]
    ]);

我的代码可能有什么问题


编辑:忘记一件事:此请求返回一个持续30分钟的令牌。只有当令牌即将过期时才运行此函数有什么提示吗?

我建议您将常量值放入
客户端
对象声明中,并将
请求
包装在
try catch
块中,以重新格式化您的请求。
try-catch
块提供了额外的好处,它将帮助您调试响应。您可以随意更改catch语句

$client = new Client([
    'base_uri' => 'https://api.apiexample.com/example/',
    'auth' => [
        'USER_KEY',
        'USER_SECRET'
    ]
]);
try {
    $response = $client->request( 'GET', 'oauth/oauth', [
        'headers' => [
            'Content-Type' => 'application/x-www-form-urlencoded',
        ],
        'form_params' => [
            'grant_type' => 'client_credentials'
        ]
    ]);
} catch (Exception $e) {
    error_log($e->getCode());
    error_log($e->getMessage());
    error_log(print_r($e->getTrace(), true));
}

如果您正在传递表单参数,则不需要标题内容类型application/x-www-form-urlencoded,它是由表单参数设置的,还请告知您的身份验证是基本的还是管理的。auth是基本的,因此实际上它根本不需要头,至少在我正在使用的API上,它设法为我提供了一个令牌,在其他请求中用作承载。谢谢你的提示!哇哈哈,谢谢你的回答!我要重新格式化成这样!