لاگین شدن با instagram در PHP

  • آپدیت شده در تاریخ

لاگین شدن با instagram در PHP

بروزرسانی در ۷ آذر ۱۳۹۹ : تغییر API اینستاگرام و افزودن سورس جدید به باکس دانلود

در این آموزش قصد داریم به شما نحوه لاگین شدن با instagram در PHP به منظور احراز هویت کاربر در سیستم لاگین اپلیکیشن وب را نشان بدیم.

در مقالات قبلی نحوه لاگین شده با API سیستم های معروف را آموزش دادیم :

لاگین شدن با اینستاگرام به ما این امکان را می دهد که با استفاده از اکانت اینستاگرام, احراز هویت را برای لاگین در سایت انجام بدیم.

از آنجا که فرایند احراز هویت (Authenticate) با API اینستاگرام هندل می شود, پس اپلیکیشن وب نیازی به قابلیت ثبت نام کاربر ندارد.

لاگین شدن با instagram در PHP یک دسترسی سریع بدون ثبت نام را در اختیار کاربر می دهد که باعث افزایش کاربران سایت می شود.

 

API اینستاگرام از OAuth 2.0 برای احراز هویت کاربر استفاده می کند بنابراین به راحتی می توانید سیستم لاگین شدن با اینستاگرام را با API را پیاده سازی کنید.

cURL یک راه ساده و مفید را برای دسترسی به API اینستاگرام با PHP را ارایه می دهد که در این آموزش از آن استفاده می کنیم.

 

در ورژن جدید کدها کامل تغییر کرده و دیگر کدهای این صفحه کاربردی ندارند و حتما از باکس دانلود کدهای جدید و تست شده را دانلود و استفاده کنید.

در مثال لاگین شدن با instagram در PHP قابلیت های زیر را پیاده می کنیم.

  • احراز هویت با اکانت اینستاگرام با استفاده از access_token
  • دریافت اطلاعات پروفایل کاربر از اکانت اینستاگرام
  • ذخیره اطلاعات پروفایل در دیتابیس توسط PHP و MySQL
  • نمایش اطلاعات اکانت کاربر

قبل از شروع آموزش لاگین شدن با instagram در PHP , نگاهی کنید به ساختار فایل های پروژه :

 

ثبت نام کلاینت ID اینستاگرام

برای دسترسی به API اینستاگرام نیاز به Client ID و Client Secret داریم.

قبل شروع به پیاده سازی لاگین شدن با instagram در PHP روی وبسایت, مراحل زیر را برای ساخت یک کلاینت جدید اینستاگرام و دریافت Client ID & Secret دنبال کنید.

  1. وارد Instagram Developer Panel شوید.
  2. به عنوان توسعه دهنده ثبت نام و وارد اکانت خود شوید.
  3. به صفحه Manage Clients شوید و روی دکمه Register a New Client کلیک کنید.
  4. فیلدها را تکمیل و روی Register کلیک کنید
  • Valid redirect URIs باید با آدرس url اسکریپت شما روی هاست (دامنه + فولدر اسکریپت) در زمان درخواست API یکی باشد.

بعد از ساخت Api در صفحه Manage Clients روی دکمه MANAGE کلیک کنید.

در صفحه جزئیات App می توانید Client ID و Client Secret را ببنید که بعدا این اطلاعات را در اسکریپت استفاده می کنیم.

ساخت جدول دیتابیس

برای ذخیره کردن اطلاعات پروفایل کاربر از اینستاگرام, نیاز به ساخت یک جدول در دیتابیس داریم.

کد SQL زیر یک جدول users با فیلد های موردنیاز را در دیتابیس MySQL ایجاد می کند.

 

کتابخانه OAuth اینستاگرام

کلاس InstagramAuth به ما کمک می کند که با احرازهویت با API اینستاگرام در PHP را براحتی انجام بدیم.

  • getAccessToken() – توکن دسترسی (access_token) را با استفاده از cURL در PHP دریافت می کند.
  • getUserProfileInfo() – اطلاعات پروفایل کاربر را توسط access_token از api اینستاگرام واکشی می کند.

 

کلاس User (فایل User.class.php)

کلاس User عملیات مربوط به دیتابیس (اتصال, اینسرت و آپدیت) را با استفاده از PHP و MySQL مدیریت می کند.

  • متد __construct() – اتصال به دیتابیس MySQL
  • متد checkUser() – داده های اکانت کاربر (اطلاعات پروفایل اینستاگرام) را ذخیره/آپدیت می کند. همچنین اطلاعات کاربر را بصورت یک آرایه برگشت می دهد.

 

فایل پیکربندی (config.php)

تنظیمات دیتابیس و اطلاعات API اینستاگرام به عنوان ثابت در فایل config.php تعریف شدند.

ثابت های دیتابیس :

  • DB_HOST – هاست دیتابیس (پیشفرض localhost)
  • DB_USERNAME – نام کاربری دیتابیس
  • DB_PASSWORD – رمزعبور دیتابیس
  • DB_NAME – نام دیتابیس
  • DB_USER_TBL – نام جدولی که اطلاعات کاربر در آن ذخیره می شود

ثابت های API اینستاگرام :

  • INSTAGRAM_CLIENT_ID – کلاینت آیدی
  • INSTAGRAM_CLIENT_SECRET – کلاینت سکرت
  • INSTAGRAM_REDIRECT_URI – آدرس بازگشتی بعد از لاگین

ساخت آبجکت کلاس احراز هویت اینستاگرام :

کتابخانه احراز هویت اینستاگرام برای اتصال به api و کار با OAuth استفاده شده است.

نکته: Client ID و Client Secret را می توانید از صفحه تنظیمات کلاینت اینستاگرام خود پیدا کنید.

 

لاگین شدن با اینستاگرام و دریافت اطلاعات اکانت (index.php)

در این فایل, فرایند احراز هویت توسط PHP هندل می شود.

در ابتدا, آدرس URL احرازهویت با متد getAuthURL() از کلاس InstagramAuth ایجاد و دکمه ورود اینستاگرام در صفحه وب برای کاربر نمایش داده می شود.

اگر کاربر وارد اکانت اینستاگرام خود شد, موارد زیر اتفاق می افتد :

  • access_token توسط getAccessToken() با استفاده از کدی که در مرحله احراز هویت بدست آوردیم, دریافت می شود.
  • اطلاعات پروفایل با استفاده از متد getUserProfileInfo() از اکانت اینستاگرام دریافت می شود.
  • اطلاعات اکانت توسط تابع checkUser() از کلاس User در دیتابیس ذخیره می شود.
  • اطلاعات اکانت کاربر در سئشن PHP ذخیره می شود/
  • جزئیات پروفایل اینستاگرام (آیدی, نام و نام خانوادگی, آواتار و لینک پروفایل) در صفحه وب نمایش داده می شوند.

 

خروج از حساب (logout.php)

اگر کاربر قصد خارج شدن از حساب کاربری اینستاگرام را داشت, فایل logout.php را اجرا می کند.

با اینکار توکن و اطلاعات کاربر از سئشن حذف و به صفحه اصلی ریدایرکت می شود.

 

جمع بندی لاگین شدن با instagram در PHP

کتابخانه احرازهویت اینستاگرام به ما کمک می کند به راحتی سیستم لاگین با اینستاگرام را با PHP پیاده سازی کنیم.

اسکریپت ارایه شده کار همگام سازی API اینستاگرام را با cURL بسیار آسان کرده است و به راحتی می توانید لاگین شدن را به وبسایت با حداقل تنظیمات API انجام بدید.

 

امیدوارم از آموزش لاگین شدن با instagram در PHP نهایت استفاده را برده باشید.

کدهای کامل و تست شده با آخرین ورژن api ایسنتاگرام را از باکس دانلود دریافت کنید.

هر سوالی داشتید، از قسمت نظرات ارسال کنید. سریعا، پاسخگوی سوالات شما هستیم.

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
دیدگاه کاربران (۱۵)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. جواد ۱۷ آبان ۱۴۰۰

    سلام میشه در رابطه با این پروژه بهتون زنگ بزنم صحبت کنیم؟

    پاسخ
    1. حسن شفیعی ۱۷ آبان ۱۴۰۰

      سلام.
      اگر میخواید سفارش کار بدید که میتونید از طریق واتساپ در تماس باشید که در بخش ارتباط با ما میتونید شماره واتساپ رو ببینید
      https://netparadis.com/contact

      پاسخ
      1. جواد ۱۷ آبان ۱۴۰۰

        سلام. خیر!
        خودم دارم پروژه مینویسم. یجایی از پروژه به مشکلم خردم گفتم اگه وقت داشته باشید باهم صحبت کنیم.

        $Instagram = new Instagram($access_token);

        //get user
        $user = $Instagram->getUserData();
        echo ‘

        ’;
        //get posts
        $posts = $Instagram->getUserMedia();

        من میخوام یه کادر بسازم.
        لینک پست رو بزارم توش.
        و بصورت json تو خروجی
        بهم بگه.
        این پست عکسه یا ویدیو
        چندتا لایک
        داره
        چندتا کامنت داره
        و از این جور اطلاعات.
        همه کار هارو درست انجام دادم.

        هرچی میگردم نمیتونم چیزی پیدا کنم ک فقط تعداد لایک رو بده یا فقط تعداد کامنمت. یا هرکدومشون.
        الان این => getUserData آیدی و نام پیج رو میده.
        این هم => getUserMedia تصاویر و ویدیو هارو بر میگردونه.

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

        در رابطه با اموزشی هم ک گذاشتید چون قدیمیه و api گرفتن بروز شده نتونستم کار کنم با پروژتون.

        مخصوصا تو ست کردن فایل InstagramAuth و config آیا باید تو هر دو فایل اطلاعات خواسته شده رو ست کنیم؟

        پاسخ
  2. مجتبی قاسمی ۷ مرداد ۱۴۰۰

    سلام وقت بخیر

    با این روش میشه پست یا استوری دانلود کرد ؟

    پاسخ
    1. حسن شفیعی ۷ مرداد ۱۴۰۰

      سلام. ممنون.
      خیر

      پاسخ
  3. پدرام ۱ تیر ۱۴۰۰

    درود بر شما آقای مهندس . سایت تون هر روز عالی تر از قبل میشه . خیلی ممنون

    پاسخ
    1. حسن شفیعی ۱ تیر ۱۴۰۰

      سلام. خوشحالیم که مفید واقع شده.
      موفق باشید.

      پاسخ
  4. Raia ۲۸ دی ۱۳۹۹

    با تشکر از اشتراک گذاری این کد مفید
    یک سئوال داشتم هرچند مستقیما مربوط به این مطلب نیست اما به اینستاگرام مربوط می‌شود:

    آیا id اینستاگرام کسی که از طریق (swipe up (See more ، یک سایت را باز می‌کند توسط اینستاگرام به سایت داده می‌شود؟
    یا به طور کلی آیا راهی هست که بتوان آیدی اینستاگرام کسی که از طریق اینستاگرام وارد سایت ما می‌شود را در همان سژن بدست آورد؟

    پاسخ
    1. حسن شفیعی ۲۹ دی ۱۳۹۹

      این مورد امکانش نیست

      پاسخ
  5. hesam ۸ آذر ۱۳۹۹

    سلام

    ممنون از به اشتراک گذاری این مطلب .
    اما ی موضوعی هست ، مثل اینکه API اینستاگرام عوض شده ، الان کلا تغییر کرده و ی جورایی با سیستم دولوپر فیسبوک یکی شده .
    الان باید چیکار کرد ؟

    پاسخ
    1. حسن شفیعی ۸ آذر ۱۳۹۹

      سلام. بروزرسانی شد. از باکس دانلود دریافت کنید.

      پاسخ
  6. Nell ۵ شهریور ۱۳۹۹

    خیلی مطلب خوبی بود. ممنون از به اشتراک گزاری.

    پاسخ
    1. حسن شفیعی ۵ شهریور ۱۳۹۹

      سلام.
      خوشحالیم که مفید واقع شده.
      موفق باشید.

      پاسخ
  7. محمد معین ۲۱ خرداد ۱۳۹۹

    سلام خسته نباشید من این مراحل رو رفتم ولی پشیمون شدم چگونه می تونم به حالت اول برگردم ؟ خواهش می کنم سریع جواب بدید

    پاسخ
    1. حسن شفیعی ۲۱ خرداد ۱۳۹۹

      سلام ممنون.
      دقیقا طبق همین آموزش به جلو برید و کدهای مشابهی که اضافه کردید رو حذف کنید و به حالت قبل بر میگردید.

      پاسخ
دوره های آموزشی