اینستاگرام و مشکلات توسعه دهنگان

اینستاگرام یک شبکه اجتماعی هست که تو ایران به شدت معروف هست، واسه همین اکثر کسب و کار ها میرن سراغش، و خوب وقتی کسب و کار ها وارد یک محیط میشن کنارش ابزار هایی نیاز میشه که سهولت بده به کار کسب و کار ها.

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

برای این منظور شبکه اجتماعی میاد یه رابط برنامه نویسی ( API ) ارائه میده که توسعه دهندگان میتونن به کمک اون تغییرات مورد نیازشون رو در شبکه های اجتماعی واسه کسب کار ها ارائه بدن.

خب اینستاگرام چی کم داره؟ اکثر امکانات اینستاگرام روی گوشی هست و این چیزی هست که کسب و کار ها دوست ندارن. کسب و کار ها میخوان بیان تو سایت و مدیریت لازم رو انجام بدن.


واسه اینکه چنین چیزی ممکن باشه اینستاگرام باید API ارائه بده که ابزار ها بتونن به کمک اون شبکه های اجتماعی رو مدیریت کنن و خب داستان اینجا شروع میشه.


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

وقتی فیسبوک اینستاگرام رو خرید قضیه کلا فرق کرد، فیسبوک میخواست اینستاگرام و فیسبوک رو کاملا به هم لینک کنه و اینکار رو هم کرد، برای مثال الان شما میتونید تو فیسبوک یک پست اضافه کنید که همزمان تو اینستاگرام هم بره یا برعکس که یه سری مراحل رو قبلش باید انجام بدید.


خب فیسبوک خودش تو زمینه API خیلی کامله و کلی مباحث جدید رو برای اولین بار تو API معرفی کرد. برای مثال graphql که میتونستی با API مثل دیتابیس برخورد کنی ( که البته این حذف شد بعدا )


حالا که اینستاگرام هم بخشی از فیسبوک شده، فیسبوک اومد اعلام کرد که API اینستاگرام مرحله به مرحله حذف میشه و به جاش باید با API فیسبوک، اینستاگرام رو مدیریت کرد.

خب این اولش خبر خوبی بود، API کامنت و آنالیز اضافه شد، بالاخره API برای انتشار پست اضافه شد که تو مرحله بتا رفت.




ولی کلا قضیه عوض شد


برنامه فیسبوک این بود که در اوایل سایت 2019 تغییرات اینستاگرام نهایی بشه و api انتشار پست هم عمومی بشه. ولی خبری از هیچی نبود.

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

این وسط hootsuite، buffer و چند ابزار که از قبل partner فیسبوک بودن تونستن به این api دسترسی پیدا کنن. البته این بخش نواقصی داره، مثلا آلبوم پشتیبانی نمیکنه یا لوکیشن یا خیلی از امکانات.


راه حلی که فیسبوک واسه بقیه ارائه داده share to instagram هست که فقط هم از موبایل با اپلیکیشن میشه. و این امکانات بیشتری به نسبت انتشار پست داره، برای مثال میشه زمینه استوری رنگش رو تعیین کرد.

و خب بافر اومد ازین استفاده کرد و به جای انتشار پست اگه اپلیکیشنش رو نصب کنید براتون پوش نوتیف میاد که با کلیک روش میتونید دستی پست رو منتشر کنید ( میدونم مسخره به نظر میرسه، ولی واقعا راه بهتری نیست! )


خب تا اینجا یه سری سایت ها تونستن api بتا رو استفاده کنن که اون هم خیلی محدود هست و بقیه هم منتظر بودن اوایل 2019 برسه.

این انتظار ادامه داشت که کلا فیسبوک داکیومنت این بخش هم پاک کرد و به نوعی گفت این بخش اصلا از بتا در نمیاد و کلا حذف میشه.

البته این رو هم اضافه کنم تحریم ها علیه ایران هم جاشون خالی نیست، شما اصلا نمیتونید به عنوان شرکت ایرانی درخواست همکاری با فیسبوک بدید.




به طول خلاصه بگم داستان های زیر هست

  • تنها راه انتشار رسمی مستقیم به اینستاگرام فقط برای چند سایت محدود قابل دسترس هست و بقیه نمیتونن استفاده کنن و نخواهند توانست.
  • میشه از روش share استفاده کرد که واقعا مسخره هست، شما باید اپلیکیشن سرویس رو نصب کنید و به جای اینکه پستتون خودکار منتشر بشه بهتون یادآوری میشه که دستی منتشر کنید ( فقط نقش یادآوری رو داره )
  • بخش های دیگه API مثل آنالیز و کامنت محدودیت های خیلی زیادی داره، برای مثال نرخ مشارکت در آنالیز رو نمیتونید بر اساس کل اکانت بگیرید و میتونید فقط بر اساس پست اونم نه بر اساس تاریخ، بلکه یه عدد کلی بگیرید که این خودش یه داستان بزرگه
  • بخش کامنت هم محدودیت هایی داره، خطاهای عجیب غریب زیادی هست، و تازه IGTV اصلا تو هیچ بخشی پشتیبانی نمیشه.
  • خود API هم خطاهای زیادی داره، برای مثال این آمار و نمودار زیر توسط بافر منتشر شده که نرخ خطای ارسال کامنت هست
خطاهای فیسبوک تو بازه های زمانی حتی به 15 درصد میرسه که این عدد خیلی زیاده
خطاهای فیسبوک تو بازه های زمانی حتی به 15 درصد میرسه که این عدد خیلی زیاده



خب راه حل چی هست؟

این وسط یه سری ها اومدن api اینستاگرام که خود اپلیکیشن با سرورشون در تماس هست رو مهندسی معکوس کردن که خودش یک داستان پیچیده هست. برای مثال شما نمیتونید https رو وقتی certificate نصب میکنید، sniff کنید. داستان ازین قراره که اندورید یه امکان جدید ارائه داده که اپ ها میتون certificate سیستم رو کلا در نظر نگیرن برای اطلاعات بیشتر اینجا رو ببینید، که برای حلش باید app رو مجددا compile کنید و تغییرات رو در بایت کد جاوا و فایل manifest اعمال کنید.

این باعث شد api غیر رسمی به وجود بیاد که معروف ترینشون کتابخونه php بود که توسط اکانت mgp25 تو گیت هاب نوشته شد و بعد اون نسخه های مختلف برای زبان های پایتون، C#، جاوااسکریپت و ... اومد.


اینجا جنگ بین مهندسی معکوس و اینستاگرام رخ داد، اینستاگرام مدام محدودیت هایی میگذاشت که حتی باعث میشد کاربرای خودش هم به مشکل بخورن، برای مثال تو یه بازه زمانی کپشن های پست ها بی دلیل با اپ خود اینستاگرام پاک می شدن.

این داستان ادامه داشت که افرادی که کتابخونه ها رو می نوشتن به این نتیجه رسیدن که این محصول باید پولی بشه و اشتراک premium اضافه کردن

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


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

جالبه بدونید که سره همین محدودیت و دور زدنش، پروکسی جدیدی به اسم mobile proxy به وجود اومد که به کمک اون میتونید ای پی گوشی بگیرید.

به لطف اپراتور های ایران و تشکر از ایرانسل و همراه اول و رایتل، شما نمیتونید تو ایران ip ثابت بگیرید برای موبایل! البته ایرانسل یکم بهتره، فقط ip داخل خود ایران میده که عملا کاربردی نیست. ( دستشون درد نکنه! )

و چون اینستاگرام به لوکیشین هم حساس هست عملا تو ایران این کاربردی نیست.


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


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


فیسبوک تصمیم رو به نظر قطعی گرفته و اصلا قصد نداره چنین api رو منتشر کنه، ولی خب کسب و کار ها اینو نیاز میبینن و اینو ضعف ابزار ها میدونن، ولی قضیه اینه که محدودیت ها اینقدر زیاد هست که درست نیست این رو ضعف ابزار بگیم


اگه شما توسعه دهنده ابزاری هستید مثل من که در نوین هاب کار میکنم، احتمالا با این مشکلات کاملا آشنایی دارید و فهمدید که راه حل ثابتی برای این مشکلات نیست.

اگه شما کسب و کاری هستید و تو ابزار هایی که استفاده میکنید مشکلات میبینید، علت این مشکلات موارد بالا هست. در واقع این مشکلات هر روز نوع جدیدی داره چون این جنگ بین فیسبوک و ابزار ها باقی مونده.