【PHP】外部APIに接続してデータを取得・表示する方法|天気・為替・ニュースなどの活用例

【PHP】外部APIに接続してデータを取得・表示する方法|天気・為替・ニュースなどの活用例 PHP

PHPでは、外部のAPIに接続してリアルタイムなデータを取得し、Webサイト上に表示することが可能です。天気予報、為替レート、最新ニュースなど、動的な情報を取り入れることで、サイトの情報価値を高めることができます。本記事では、PHPで外部APIに接続してデータを取得・表示する方法を、実例を交えてわかりやすく解説します。

外部APIを使うための基本知識

外部API(Application Programming Interface)は、他のサービスが提供する機能やデータにアクセスするための仕組みです。PHPでAPIに接続するには、通常以下のようなステップを踏みます。

  1. APIのエンドポイントURLを確認する
  2. 必要に応じてAPIキー(認証キー)を取得する
  3. file_get_contents() または cURL でデータを取得する
  4. JSON形式で返ってきたデータを json_decode() で配列化する
  5. 必要な情報を取り出して表示する

天気予報APIを使ったサンプルコード

まずは、OpenWeatherMap のAPIを使用して、東京の天気を取得してみます。APIキーの取得は無料でできます。

<?php
$apiKey = 'YOUR_API_KEY'; // OpenWeatherMapのAPIキー
$city = 'Tokyo';
$url = "https://api.openweathermap.org/data/2.5/weather?q={$city}&appid={$apiKey}&lang=ja&units=metric";

// APIからJSONデータを取得
$response = file_get_contents($url);
$data = json_decode($response, true);

// 必要なデータを表示
if ($data && isset($data['weather'][0]['description'], $data['main']['temp'])) {
    echo "現在の天気:{$data['weather'][0]['description']}<br>";
    echo "気温:{$data['main']['temp']}℃";
} else {
    echo "天気情報を取得できませんでした。";
}
?>

このコードを実行すると、現在の天気と気温が表示されます。

為替レートAPIを使ったサンプルコード

次に、ExchangeRate-API を使って、日本円と米ドルの為替レートを取得する例です。

<?php
$apiKey = 'YOUR_API_KEY'; // ExchangeRate-APIのAPIキー
$url = "https://v6.exchangerate-api.com/v6/{$apiKey}/latest/JPY";

$response = file_get_contents($url);
$data = json_decode($response, true);

if ($data && isset($data['conversion_rates']['USD'])) {
    echo "現在のUSD/JPYレート:1ドル = {$data['conversion_rates']['USD']}円";
} else {
    echo "為替情報を取得できませんでした。";
}
?>

通貨情報は多くのWebアプリで活用されるデータの一つです。

ニュースAPIを使ったサンプルコード

最後に、NewsAPI を使って最新のニュースを取得してみましょう。

<?php
$apiKey = 'YOUR_API_KEY'; // NewsAPIのAPIキー
$url = "https://newsapi.org/v2/top-headlines?country=jp&apiKey={$apiKey}";

$response = file_get_contents($url);
$data = json_decode($response, true);

if ($data && isset($data['articles'])) {
    foreach (array_slice($data['articles'], 0, 5) as $article) {
        echo "<h3>{$article['title']}</h3>";
        echo "<p>{$article['description']}</p>";
        echo "<a href=\"{$article['url']}\" target=\"_blank\">続きを読む</a><hr>";
    }
} else {
    echo "ニュース情報を取得できませんでした。";
}
?>

ニュースサイトやポータルに適した応用例です。

セキュリティ上の注意点

APIとの通信には、以下の点に注意しましょう。

  • APIキーは絶対に公開しないこと(GitHub等に上げない)
  • HTTPS接続を使うこと(通信内容の盗聴を防止)
  • タイムアウトやエラーハンドリングを実装すること

実際の運用では file_get_contents() よりも cURL を推奨するケースが多く、細かい制御が可能です。

まとめ

PHPで外部APIに接続することで、静的なページにもリアルタイムな情報を簡単に組み込むことができます。天気や為替、ニュース以外にも、株価、地図、翻訳、AIなど多様なAPIが存在します。
あなたのサイトに最適なAPIを選び、より価値のあるコンテンツを提供してみてください。