PHP — API para Obter Notícias de Todos o Mundo
Olá Gente!
As vezes precisamos exibir algumas notícias em um site, porem, ficar fazendo Crawler de sites é complicado.
Para isto, existe uma API excelente, que é grátis para até 100 requisições por dia, com isto, basta fazer a requisição e armazenar em cache:
Esta API requer uma API Key, então, primeiro crie sua API Key em:
Para buscar as notícias, precisamos fazer uma GET para:
https://newsapi.org/v2/everything
Enviando alguns parâmetros:
- apiKey: A API Key que você recebeu ao se cadastrar neste site
- q: O que você esta buscando, neste exemplo, iremos preencher “Harry Potter”
- language: A sigla do idioma, neste exemplo, iremos preencher “pt” para “Português”
- sortBy: A ordenação das notícias, neste exemplo, iremos preencher com “publishedAt” para trazer as notícias ordenadas por mais recentes
- pageSize: Q quantidade de registros, neste exemplo, iremos preencher com “100”
Exemplo:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://newsapi.org/v2/everything?q=harry potter&apiKey=e8af376e689447e0840f72d3c946c182&language=pt&sortBy=publishedAt",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false
));
$response = curl_exec($curl);
$response2 = json_decode($response, true);
curl_close($curl);
foreach( $response2["articles"] as $RegResponse )
{
var_dump($RegResponse);
echo "\n\r";
echo "\n\r";
}
?>
Como resultado, iremos receber um array no elemento “articles”, onde cada elemento é uma notícia:
{
"status": "ok",
"totalResults": 106,
"articles": [
{
"source": {
"id": null,
"name": "Adorocinema.com"
},
"author": "Adoro Cinema",
"title": "Big Brother Brasil: Você sabe de onde surgiu a ideia do reality?",
"description": "Considerado um dos realities mais famosos do Brasil, Big Brother foi inspirado no livro de George Orwell.",
"url": "https://www.adorocinema.com/noticias/series/noticia-1000060458/",
"urlToImage": "https://p2.trrsf.com/image/fget/cf/1200/630/middle/images.terra.com/2024/01/29/1213730971-220ec836c7af2caab704f1dbfe0bd930.png",
"publishedAt": "2024-01-29T15:47:45Z",
"content": "Nós sabemos que muitas adaptações do cinema, assim como para a televisão, são inspiradas em fatos reais e também em obras literárias, tendo Harry Potter e até The Crown como um bom exemplo disso. Mas… [+1756 chars]"
}
]
}
Existem mais configurações possíveis que podem ser consultadas em:
Por hoje é isto, queridos desenvolvedores! 👩💼
Até logo! 👋
Leia também
API Mágica: notificações Web Push no navegador com PHP
Web Push com a API Mágica em PHP puro: o navegador se inscreve, o seu site envia a notificação e a API conta o clique. Sem Composer e sem biblioteca.
IndexNow: avisando o Bing e o Yandex mais rápido
Como criar a chave do IndexNow e avisar Bing e Yandex das suas páginas novas com Node.js e PHP: as requisições, os erros reais e as armadilhas.
llms.txt: por que importa e como gerar em PHP
Por que o llms.txt importa para quem quer ser citado pela IA, e como gerar o seu em PHP puro lendo o sitemap.xml que voce ja tem.