Php 从API调用获取响应时,如何从数组中获取变量?
成功登录第三方API访问后,使用以下代码:Php 从API调用获取响应时,如何从数组中获取变量?,php,Php,成功登录第三方API访问后,使用以下代码: $response = Requests::post('https://apidomain.com/v3/account/login/api', $headers, $data); 当我打印时: echo '<pre>'; print_r($response); echo '</pre>'; 现在我想将access_令牌作为一个变量进行访问,这样我就可以进行进一步的处理 我尝试访问如下内容:$access\u token=$
$response = Requests::post('https://apidomain.com/v3/account/login/api', $headers, $data);
当我打印时:
echo '<pre>'; print_r($response); echo '</pre>';
现在我想将access_令牌作为一个变量进行访问,这样我就可以进行进一步的处理
我尝试访问如下内容:$access\u token=$response[body']和$access\u token=$response[1][body']
不幸的是,一切都不起作用
我如何解决这个问题 使用@catcon的建议,我可以使用以下代码并使其工作:
因为
json\u decode()
需要第二个参数true
作为数组进行解码。在这种情况下,您可以作为$foo->access_token
访问它,或者添加true
作为第二个参数并作为数组访问它。我无法获取它…您可以告诉我如何获取它的语法吗?因为使用json_decode()本身返回的错误为:不能使用类型为Requests_Response的对象作为数组来结束之前的注释,所以您的语法将是$token=json_decode($Response,true)['access_token']
。您缺少第二个参数,true
使其成为一个数组。当我使用$token=json\u decode($response,true)['access\u token']
时,我得到:json\u decode()期望参数1为字符串
Yes@catcon。谢谢,这是直截了当的。这就是我想要的答案。谢谢
Requests_Response Object
(
[body] => {"access_token":"blabla",".issued":"2019-07-30T02:47:14.4326684Z",".expires":"2019-08-01T02:47:14.4326686Z"}
[raw] => HTTP/1.1 200 OK
etc...
$token = json_decode($response->body, true)['access_token']; echo $token;