PHP

Instagram APIのデータを指定時間毎にJSONファイルへ取得・保存するテクニック【PHP】

Instagramの投稿をWebサイトに表示することは、あなたのオンラインプレゼンスを強化し、訪問者とのエンゲージメントを高める素晴らしい方法です。
Instagramは、その視覚的なコンテンツで知られており、多くのウェブサイトがInstagramのフィードを活用しています。
この記事では、InstagramのGraph APIを使って、簡単にあなたのウェブサイトにInstagramのデータを表示する方法をご紹介します。

準備するもの

  • Instagram APIのアクセス権
  • PHPが動作するWebサーバー

InstagramのGraph APIを使用する前に、Facebook for Developersでアプリを登録し、Instagramのアクセス権を取得する必要があります。詳細な手順はFacebook for Developersの公式ドキュメントを参照してください。

Instagramの投稿サイトに表示するメリット

Instagramのコンテンツをあなたのウェブサイトに組み込むことで、ソーシャルメディアのフォロワーをウェブサイトの訪問者に変換する機会を増やすことができます。また、ウェブサイトのビジュアルコンテンツを豊かにし、ユーザーエクスペリエンスを向上させることができます。

注意点

InstagramのAPIを使用する際には、リクエスト数の制限に注意する必要があります。過度なリクエストは、APIの使用制限に達する可能性があります。そのため、データの取得頻度を適切に管理することが重要です。

具体的なPHPの記述

Webサイトの訪問者がサイトを閲覧するたびにトリガーされ、1日に30分ごとにInstagram Graph APIからJSONデータを取得し、それをinsta.jsonとしてWebサーバーに保存するPHPスクリプトの処理は次のようになります。

このスクリプトは、最後にデータを取得してから30分が経過したかどうかを確認し、経過していれば再度データを取得します。これは、一時ファイルやデータベースに最後の取得時刻を記録することで実現できます。

以下の例では、最後の実行時刻をファイルに記録する方法を使用しています。
YOUR_INSTAGRAM_GRAPH_API_URL_HEREを実際のGraph API URLに置き換えてください。これは、アクセストークンを含む完全なリクエストURLです。

<?php

// 最後にデータを取得した時刻を記録するファイルのパス
$timestampFile = 'last_update_timestamp.txt';
// 出力するJSONデータのファイル
$jsonFile = 'insta.json';
// Instagram Graph APIのURL
$graphApiUrl = 'YOUR_INSTAGRAM_GRAPH_API_URL_HERE';

// 最後にデータを取得した時刻を読み込む
$lastUpdateTime = @file_get_contents($timestampFile);
$currentTime = time();

// 最後の更新から30分(1800秒)が経過しているか確認
if ($lastUpdateTime === false || $currentTime - $lastUpdateTime > 1800) {
    // cURLセッションを初期化
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $graphApiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);

    // APIからのレスポンスを取得
    $response = curl_exec($ch);
    curl_close($ch);

    // レスポンスがfalseでないことを確認
    if ($response !== false) {
        // JSONデータをファイルに保存
        file_put_contents($jsonFile, $response);
        // 最後の更新時刻を更新
        file_put_contents($timestampFile, $currentTime);
    } else {
        // エラー処理
        echo "APIからデータを取得できませんでした。";
    }
}

?>

 
このスクリプトをサイトの適切な場所に配置し、訪問者がページをロードするたびに実行されるようにします。
ただし、この方法はサイトの訪問頻度に依存するため、予測不可能な訪問パターンがある場合は期待する通りに動作しないことがあります。
また、ページの読み込み速度に影響を与える可能性があるため、実行時間の短縮や、非同期処理の実装など、パフォーマンスへの影響を最小限に抑える工夫が必要です。

Instagramの使用条件とAPIのレート制限を守るようにしてください。

最後に

Instagram APIを使用してウェブサイトにダイナミックなコンテンツを追加する方法は、技術的な知識があまりない方でも簡単に実装できます。この記事が、Instagramのデータをウェブサイトに組み込む第一歩として役立つことを願っています。チャレンジしてみてください!

 
※流用される場合は自己責任でお願いします。