adinan-cenci / climatempo-api
一个用PHP编写的天气预报API。
Requires
- php: >=5.3
Requires (Dev)
- phpunit/phpunit: ^6.2
README
*在其他语言中阅读此内容: 英语
Climatempo 是巴西城市的天气预报服务。他们为开发者提供了一个REST类型的API,本库的目的是简化通过此API进行天气预报请求的过程。
我在哪里可以获得访问令牌?
访问 advisor.climatempo.com.br 并创建一个账户。
将城市注册到您的令牌
在为特定城市请求天气预报之前,您需要将那个城市的ID注册到您的令牌。
use AdinanCenci\Climatempo\Climatempo; $token = 'seu-token-aqui'; $locales = array(3477 /*São paulo*/, 5959 /*Rio de Janeiro*/, 8050 /*Fortaleza*/); $climatempo = new Climatempo($token); $ids = $climatempo->addLocalesToToken($locales);
如何使用
假设我们想要获取圣保罗 - SP 的天气预报。
我们需要这个城市的ID
use AdinanCenci\Climatempo\Climatempo; $token = 'seu-token-aqui'; $id = 3477; /*São paulo*/ $climatempo = new Climatempo($token); $previsao = $climatempo->fifteenDays($id); foreach ($previsao->days as $dia) { echo "Cidade: <b>$previsao->city ($dia->date)</b>: <br> Temp. mínima: $dia->minTemp °C <br> Temp. máxima: $dia->maxTemp °C <br> Probab. de precipitação: $dia->pop % <br> Precipitação: $dia->mm mm <br> Frase: $dia->textPt <hr>"; }
这将导致以下结果
城市: 圣保罗 (2017-12-06)
最低温度: 21 °C
最高温度: 32 °C
降水概率:%
降水量: mm
天气状况:晴有时多云
城市: 圣保罗 (2017-12-07)
最低温度: 18 °C
最高温度: 24 °C
降水概率: 75 %
降水量: 2 mm
天气状况:晴转雨
城市: 圣保罗 (2017-12-08)
最低温度: 16 °C
最高温度: 20 °C
降水概率: 75 %
降水量: 3 mm
天气状况:晴转雨
洪水
可以通过经纬度恢复有关洪水风险的资料。
use AdinanCenci\Climatempo\Climatempo; $token = 'seu-token-aqui'; $latitude = '-23.6733566'; /*São paulo*/ $longitude = '-46.8851047,10'; $climatempo = new Climatempo($token); $risk = $climatempo->floodingRisk($latitude, $longitude); echo '<b>'.$risk->latitude.' '.$risk->longitude.'</b><br>'; foreach ($risk->data as $data) { echo 'Valor agora: '.$data->valueNow.'<br /> Agora: '.date('d / M / Y, H:i:s', $data->now).'<br /> <br /> Valor próxima hora: '.$data->valueNextHour.'<br /> Próxima hora: '.date('d / M / Y, H:i:s', $data->nextHour). '___'; }
这将导致以下结果
-23.18400435255711 -46.28138759172782
当前值: 0
现在: 26 / Dec / 2019, 16:00:00
下一小时值: 0
下一小时: 26 / Dec / 2019, 17:00:00
不知道ID如何获取城市的预报?
很遗憾,Climatempo使用自己的系统,每个巴西城市都有自己的ID。但您可以使用Search类轻松找到您要找的城市。
假设我们想要获取里约热内卢 - RJ 的预报
use AdinanCenci\Climatempo\City\Search; $pesquisa = new Search(); $pesquisa->name('rio de janeiro'); $rio = $pesquisa->find()[0]; // objeto City
然后您可以通过以下方法访问预报
$rio->fifteenDays($token); // retorna a previsão para os próximos 15 dias $rio->seventyTwoHours($token); // retorna a previsão para as próximas 72 horas $rio->current($token); // retorna o estado do clima neste instante $rio->today($token); // retorna a previsão para hoje $rio->tomorow($token); // retorna a previsão para amanhã $rio->afterTomorow($token); // retorna a previsão para depois de amanhã
搜索
关于搜索,Search类允许我们限制搜索到州。
以下示例将搜索所有在里约热内卢州名称中包含"rio"的城市。
use AdinanCenci\Climatempo\City\Search; $pesquisa = new Search(); $pesquisa ->name('rio') ->state('RJ'); $pesquisa->find(); // retorna array
请参阅"examples"文件夹中的其他示例。
如何安装
使用composer
composer require adinan-cenci/climatempo-api
许可证
MIT许可证