Я пытаюсь повторить часть моего ответа JSON от Plaid API.
Вот код:
$data = array(
"client_id"=>"test_id",
"secret"=>"test_secret",
"public_token"=>"test,fidelity,connected");
$string = http_build_query($data);
//initialize session
$ch=curl_init("https://tartan.plaid.com/exchange_token");
//set options
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//execute session
$exchangeToken = curl_exec($ch);
echo $exchangeToken;
$exchangeT = json_decode($exchangeToken);
echo $exchangeT['access_token'];
//close session
curl_close($ch);
Вот ответ:
{ "sandbox": true, "access_token": "test_fidelity" }
Я также получаю 500 Internal Server Error, которая возникает из строки echo $ exchangeT. Я хочу взять часть access_token ответа JSON, повторить его для проверки и в конечном итоге сохранить в базе данных.
Если вы пройдете true
как second parameter
в вашем json_decode
тогда вы получите array
вместо object
так
изменить это
$exchangeT = json_decode($exchangeToken, true);
// it wii output as $exchangeT = array('sandbox'=>true,'access_token'=>'test_fidelity');
echo $exchangeT['access_token'];
для получения дополнительной информации читайте http://php.net/manual/en/function.json-decode.php
И подпись функции:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Из определения функции видно, что второй аргумент $assoc
по умолчанию false
, Что делает этот аргумент (и это предполагает название), это когда ПРАВДА, возвращенные объекты будут преобразованы в ассоциативные массивы.
Итак, в вашем случае,
$exchangeToken = json_decode($exchangeToken, true);
должен делать то, что вам нужно.
просто передайте true в качестве второго параметра, json_decode () возвращает в формате массива вместо объекта, если второй параметр имеет значение true.
$exchangeT = json_decode($exchangeToken, true);