当我尝试解码来自youtube api的响应时,json_decode返回null


json_decode returns null when I try to decode the response from youtube api

所以我尝试与youtube api创建一个oauth连接,但我有解码响应的问题。我的问题在这里:

public function getCallbackUrl($code)
{
    // Grab the returned code and extract the access token.
    $this->params = [
        'code'          => $code,
        'client_id'     => '#####',
        'client_secret' => '####',
        'redirect_uri'  => '######',
        'grant_type'    => 'authorization_code'
    ];
    // Get access token
    $command = 'curl --data "' . http_build_query($this->params) . '" https://accounts.google.com/o/oauth2/token';
    exec($command, $resultToken);
    $resultToken = json_decode($resultToken[0]);

在我执行$resultToken返回如下:

array(5) { [0]=> string(1) "{" [1]=> string(93) " "access_token" : "###########"," [2]=> string(26) " "token_type" : "Bearer"," [3]=> string(21) " "expires_in" : 3599" [4]=> string(1) "}" }

但是当我尝试json_decode获得一个数组:$resultToken = json_decode($resultToken[0]);我得到一个结果NULL谁能告诉我为什么吗?欢迎任何帮助,感谢您的时间!

var_dump($resultToken[0]) = NULL;

您正在尝试解码一个无效的JSON值。验证您的API请求是否返回正确的响应。来自文档:

如果json不能被解码或者编码的数据深度超过递归限制,则返回

NULL。

附带说明,您正在使用系统调用来调用cURL。考虑使用本地PHP cURL扩展或合适的库。