所以我尝试与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扩展或合适的库。