Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Buenas pepow....
Não manjo muito desses paranauê, mas consegui fazer umas coisa me baseando em códigos que achei na net, mas dei uma enroscada...
Tenho essa API: https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=agro3&interval=1min&outputsize=full&apikey=P75WUJJ5C52V1SY1
Que me trás algo assim:
{
"Meta Data": {
"1. Information": "Intraday (1min) prices and volumes",
"2. Symbol": "agro3",
"3. Last Refreshed": "2017-09-13 14:09:00",
"4. Interval": "1min",
"5. Output Size": "Full size",
"6. Time Zone": "US/Eastern"
},
"Time Series (1min)": {
"2017-09-13 14:09:00": {
"1. open": "12.7400",
"2. high": "12.7400",
"3. low": "12.7400",
"4. close": "12.7400",
"5. volume": "200"
},
"2017-09-13 14:08:00": {
"1. open": "12.7200",
"2. high": "12.7200",
"3. low": "12.7200",
"4. close": "12.7200",
"5. volume": "400"
},
"2017-09-13 14:03:00": {
"1. open": "12.7200",
"2. high": "12.7200",
"3. low": "12.7200",
"4. close": "12.7200",
"5. volume": "100"
},
"2017-09-13 13:57:00": {
"1. open": "12.7400",
"2. high": "12.7400",
"3. low": "12.7400",
"4. close": "12.7400",
"5. volume": "500"
E estou tentando tratar ela com o código:
<?php
$ativo = 'CARD3';
header('Content-Type: application/json; charset=utf-8');
$json = file_get_contents('https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol='.urlencode($ativo).'&interval=1min&outputsize=compact&apikey=P75WUJJ5C52V1SY1');
$obj = json_decode($json, true);
//pegar data da ultima atualização
foreach ($obj['Meta Data'] as $periodo)
{
echo $periodo. ' | ' ;
}
//pegar valor de fechamento
foreach ($obj['Time Series (1min)']['2017-09-12 15:55:00'] as $close)
{
echo $close. ' | ';
}
Até certo ponto está funcionado (apesar de dar umas bugadas de vez e quando qdo a data muda), estou conseguindo o esse resultado:
Intraday (1min) prices and volumes | CARD3 | 2017-08-30 16:09:00 | 1min | Compact | US/Eastern | 9.7000 | 9.9000 | 9.6300 | 9.6500 | 209200 |
Porem eu queria pegar só duas informações especificas dessa API, que seria o "3. Last Refreshed" para identificar o horário mais atual e jogar em uma variável, e com ela identificar o valor do "4. close" mais recente...
Pelo que eu achei que tinha entendido, seria só colocar o caminho todo, tipo :
($obj['Time Series (1min)']['2017-08-30 16:09:00']['4. close']
mas se faço isso da erro:
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/storage/ssd2/526/2780526/public_html/newEmptyPHP.php</b> on line <b>14</b><br />
Poderiam me dar uma luz?
GraciasCarregando comentários...