Display Instagram posts from a profile in PHP

Spread the love

To display Instagram posts from a profile in PHP, you can use the Instagram Basic Display API, which allows you to authenticate and fetch posts from an Instagram user’s account. Here’s a general outline of the steps you would need to follow:

  • Set Up an Instagram App:
    • Create a Facebook Developer account if you don’t have one.
    • Create a new app and associate it with your Facebook Developer account.
    • Configure the app with the necessary settings, including the Instagram Basic Display product.
  • Get Access Token:
    • Use the Instagram Graph API to obtain a user access token with the necessary permissions (e.g., user_profile and user_media).
  • Fetch Instagram Posts:
    • Make API requests to retrieve the user’s posts using the obtained access token.
    • Parse the JSON response to extract the post data.
  • Display Posts:
    • Loop through the fetched posts and display them on your web page.

Here’s a simplified example of how you might implement this in PHP:

<?php
// Replace with your actual app credentials
$appId = 'YOUR_APP_ID';
$appSecret = 'YOUR_APP_SECRET';
$redirectUri = 'YOUR_REDIRECT_URI';

// Replace with the user's access token
$accessToken = 'USER_ACCESS_TOKEN';

// API endpoint URLs
$baseUrl = 'https://graph.instagram.com/v12.0/';
$userEndpoint = 'me';
$mediaEndpoint = 'media';

// Construct the API request URL
$userUrl = $baseUrl . $userEndpoint . '?fields=id,username&access_token=' . $accessToken;
$mediaUrl = $baseUrl . $userEndpoint . '/' . $mediaEndpoint . '?fields=media_url,caption&access_token=' . $accessToken;

// Fetch user profile data
$userData = json_decode(file_get_contents($userUrl), true);

// Fetch user's media (posts)
$mediaData = json_decode(file_get_contents($mediaUrl), true);

// Display fetched posts
if (isset($mediaData['data'])) {
    foreach ($mediaData['data'] as $post) {
        $mediaUrl = $post['media_url'];
        $caption = isset($post['caption']) ? $post['caption'] : '';

        echo '<div>';
        echo '<img src="' . $mediaUrl . '" alt="Instagram Post">';
        echo '<p>' . $caption . '</p>';
        echo '</div>';
    }
}
?>

Remember to replace placeholders such as YOUR_APP_ID, YOUR_APP_SECRET, YOUR_REDIRECT_URI, and USER_ACCESS_TOKEN with your actual values. Also, keep in mind that this is a basic example, and you might need to handle authentication flows, pagination for fetching multiple pages of media, and error handling in a real-world implementation.

Lastly, be sure to review and comply with Instagram’s API usage policies to avoid any violations.