Pular para o conteúdo
PHP

PHP — API para Obter Notícias de Todos o Mundo

Capa do artigo: 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:

News API – Search News and Blog Articles on the WebGet JSON search results for global news articles in real-time with our free News API.newsapi.org

Esta API requer uma API Key, então, primeiro crie sua API Key em:

Register - News APIGet a free API key for News API - an API for accessing JSON metadata for the latest news headlines from a range of sources.newsapi.org


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:

Everything - Documentation - News APInewsapi.org

Por hoje é isto, queridos desenvolvedores! 👩‍💼
Até logo! 👋

PHP

Leia também