پیاده‌سازی پروژه‌های ساده با API اینستاگرام در پایتون

پیاده‌سازی پروژه‌های ساده با API اینستاگرام در پایتون

پیاده‌سازی پروژه‌های ساده و کار با API اینستاگرام در پایتون

API اینستاگرام یکی از ابزارهای قدرتمند برای توسعه‌دهندگانی است که به دنبال ایجاد برنامه‌های کاربردی مرتبط با شبکه‌های اجتماعی هستند. این ابزار به شما اجازه می‌دهد داده‌هایی مانند تعداد فالوورها، پست‌های اخیر، و تعاملات کاربران را بازیابی کنید یا حتی محتوایی را به صورت خودکار منتشر کنید. در این مقاله، با چند پروژه API اینستاگرام با پایتون به صورت ساده که میتوانید برای آموزش کار با API اینستاگرام در پایتون برای مبتدیان آنهارا پیاده‌سازی کنید، آشنا می‌شوید.


پیش‌نیازها

آشنایی با مفاهیم پایه API

  • Access Token: برای برقراری ارتباط با API لازم است.
  • Endpoints: آدرس‌هایی که درخواست‌ها به آن‌ها ارسال می‌شود، مثل /media یا /users.

نصب ابزارهای لازم در پایتون
ابتدا اطمینان حاصل کنید که پایتون و کتابخانه‌های زیر نصب شده‌اند:

pip install requests

کتابخانه‌های دیگری مانند json و os نیز به صورت پیش‌فرض در پایتون موجود هستند.

ساخت حساب Developer و دریافت توکن دسترسی

  1. وارد Facebook for Developers شوید.
  2. اپلیکیشنی ایجاد کنید و حساب اینستاگرام خود را متصل کنید.
  3. مراحل احراز هویت را تکمیل کنید و توکن دسترسی دریافت کنید.

پروژه‌های ساده

پروژه 1: نمایش تعداد فالوورها
این پروژه تعداد فالوورهای حساب کاربری را نمایش می‌دهد:

import requests

ACCESS_TOKEN = 'your_access_token_here'
USER_ID = 'your_user_id_here'
BASE_URL = 'https://graph.instagram.com/'

def get_followers_count():
    url = f"{BASE_URL}{USER_ID}"
    params = {
        'fields': 'followers_count',
        'access_token': ACCESS_TOKEN
    }
    response = requests.get(url, params=params)
    if response.status_code == 200:
        data = response.json()
        print(f"Followers: {data['followers_count']}")
    else:
        print(f"Error: {response.status_code} - {response.text}")

get_followers_count()

پروژه 2: دریافت و نمایش پست‌های اخیر
این پروژه اطلاعات مربوط به پست‌های اخیر یک کاربر را دریافت و نمایش می‌دهد:

def get_recent_posts():
    url = f"{BASE_URL}{USER_ID}/media"
    params = {
        'fields': 'id,caption,media_type,media_url',
        'access_token': ACCESS_TOKEN
    }
    response = requests.get(url, params=params)
    if response.status_code == 200:
        posts = response.json()['data']
        for post in posts:
            print(f"Post ID: {post['id']}")
            print(f"Caption: {post.get('caption', 'No Caption')}")
            print(f"Media Type: {post['media_type']}")
            print(f"Media URL: {post['media_url']}")
            print('-' * 40)
    else:
        print(f"Error: {response.status_code} - {response.text}")

get_recent_posts()

پروژه 3: تحلیل داده‌های تعاملات کاربران
در این پروژه داده‌های مربوط به تعاملات (مانند لایک‌ها و کامنت‌ها) را تحلیل می‌کنید:

def get_post_interactions(post_id):
    url = f"{BASE_URL}{post_id}/insights"
    params = {
        'metric': 'engagement,impressions',
        'access_token': ACCESS_TOKEN
    }
    response = requests.get(url, params=params)
    if response.status_code == 200:
        data = response.json()['data']
        for metric in data:
            print(f"{metric['name']}: {metric['values'][0]['value']}")
    else:
        print(f"Error: {response.status_code} - {response.text}")

# Replace with a valid post ID
post_id = 'your_post_id_here'
get_post_interactions(post_id)

پروژه‌های گسترش‌یافته

ساخت داشبورد تحلیل داده
می‌توانید با استفاده از کتابخانه‌هایی مثل Dash یک داشبورد برای نمایش داده‌های تعامل کاربران طراحی کنید.

زمان‌بندی ارسال درخواست‌ها
با استفاده از کتابخانه schedule می‌توانید داده‌ها را در بازه‌های زمانی منظم دریافت کنید:

import schedule
import time

def job():
    get_followers_count()

schedule.every(1).day.at("10:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

ارسال پست خودکار
هرچند نیاز به دسترسی‌های پیشرفته دارد، می‌توانید با استفاده از endpoint مربوطه، پست‌ها را به صورت خودکار ارسال کنید.


نکات و چالش‌ها

محدودیت‌ها

  • محدودیت تعداد درخواست‌های روزانه: برای درخواست‌های بیشتر باید به نرخ محدودیت توجه کنید.
  • نیاز به دسترسی‌های پیشرفته برای برخی قابلیت‌ها.

امنیت توکن دسترسی
هرگز توکن‌های دسترسی خود را در مخازن عمومی ذخیره نکنید. از متغیرهای محیطی یا ابزارهایی مثل dotenv استفاده کنید.

مدیریت خطاها
اطمینان حاصل کنید که کد شما در برابر خطاهایی مانند درخواست‌های ناموفق مقاوم است:

try:
    response.raise_for_status()
except requests.exceptions.HTTPError as e:
    print(f"HTTP Error: {e}")

نتیجه‌گیری

API اینستاگرام به شما این امکان را می‌دهد تا پروژه‌های متنوعی برای تحلیل داده‌ها، مدیریت محتوا، و تعامل با کاربران ایجاد کنید. با استفاده از مثال‌های ساده‌ای که در این مقاله ارائه شد، می‌توانید مهارت‌های خود را گسترش دهید و به صورت حرفه‌ای‌تر پروژه هایی مثل پروژه API اینستاگرام با پایتون طراحی کنید.


سوالات متداول

1. آیا می‌توان API اینستاگرام را برای حساب‌های شخصی استفاده کرد؟
خیر، تنها حساب‌های تجاری یا خالق قابلیت اتصال به API را دارند.

2. چگونه می‌توان درخواست‌های API را برای چند حساب مدیریت کرد؟
هر حساب باید جداگانه تأیید شود و توکن دسترسی مختص به خود را داشته باشد.

3. آیا استفاده از API رایگان است؟
نسخه پایه API رایگان است، اما برای امکانات پیشرفته‌تر ممکن است نیاز به پرداخت هزینه داشته باشید.

4. آیا محدودیت نرخ درخواست‌ها مشکل‌ساز است؟
اگر پروژه شما نیاز به درخواست‌های مکرر دارد، باید برنامه‌ریزی دقیقی برای مدیریت محدودیت‌ها داشته باشید.

5. آیا API اینستاگرام به زبان‌های دیگر نیز پشتیبانی می‌شود؟
بله، شما می‌توانید از API در زبان‌های برنامه‌نویسی مختلف مانند جاوا، PHP و جاوااسکریپت نیز استفاده کنید.