تحذير 31-12-2023 - الإصدار 7.0.0 سيسقط دعم PHP <8.2
تحذير 09-11-2022 - قام Instagram بتغيير DOM الخاص به مرة أخرى... يرجى التحديث إلى هذا الإصدار 6.16.4
تحذير 01-06-2022 - قام Instagram بتغيير محتوى DOM الخاص به وتحميل بيانات الملف الشخصي. يرجى التحديث إلى هذا الإصدار 6.15.0
يمكنك بسهولة جلب أي موجز Instagram والمزيد بدون OAuth لـ PHP.
إذا أعجبتك هذه الحزمة أو استخدمتها، فيرجى مشاركة حبك من خلال تمييز هذا المستودع بنجمة، أو متابعة @pgrimaud أو كن راعيًا.
يمكن لهذا الإصدار استرداد أي موجز Instagram باستخدام تجريف الويب .
composer require pgrimaud/instagram-user-feed
الإصدار 7.0.0 - 31-12-2023:
الإصدار 6.16.6 - 31-12-2023:
الإصدار 6.16.5 - 24-12-2023:
$profile->getMedias()
سيُرجع دائمًا مصفوفة فارغة بعد استدعاء $api->getProfile()
. من الضروري الاتصال $api->getMoreMedias($profile)
لإرجاع أول 12 وسائط (cookieguru)الإصدار 6.16 - 2022-08-02:
الإصدار 6.15 - 2022-06-02:
الإصدار 6.12 - 2021-09-20:
الإصدار 6.11 - 2021-09-13:
الإصدار 6.10 - 2021-09-03:
الإصدار 6.9 - 2021-09-02:
الإصدار 6.8 - 2021-07-08:
الإصدار 6.7 - 2021-01-31:
الإصدار 6.6 - 2020-10-06:
الإصدار 6.5 - 14-09-2020:
الإصدار 6.4 - 2020-08-30:
الإصدار 6.3 -2020-07-03:
الإصدار 6.2 - 2020-06-01:
الإصدار 6.1 - 2020-05-21:
الإصدار 6.0 - 2020-05-20
أضاف فيسبوك سياسة CORS جديدة، ولا يمكنك عرض البيانات مباشرة.
يمكنك الآن تنزيل الوسائط على وحدة التخزين أو الخادم لديك لعرضها مباشرة على موقع الويب الخاص بك. يمكنك العثور على مثال هنا.
مثال:
<?php
// include vendor & classes
// random picture from instagram
$ url = ' https://scontent-cdt1-1.cdninstagram.com/v/t51.2885-19/s150x150/156309873_1632221153646196_1273891214497323498_n.jpg?tp=1&_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_ohc=vbxGNZrjPmUAX8CIDdC&edm=ABfd0MgBAAAA&ccb=7-4&oh=ae5811c07f0e73b945eb203cd58c2101&oe=60EDD1EE&_nc_sid=7bff83 '
// define directory
$ downloadDir = __DIR__ . ' /../assets ' ; // change it
$ fileName = MediaDownloadHelper:: downloadMedia ( $ url , $ downloadDir );
// file was downloaded here : __DIR__ . '/../assets/v-t51.2885-19-s150x150-156309873_1632221153646196_1273891214497323498_n.jpg
قد يواجه بعض الأشخاص مشكلة في تسجيل الدخول باستخدام هذه المكتبة. يحدث ذلك لحسابات Instagram "القديمة" أو إذا كنت تستخدمها على بعض الاستضافة المشتركة (ليس كلها، لا أعرف السبب...).
يمكنك الآن تجاوز تحدي نقطة التفتيش تلقائيًا. (التحقق من البريد الإلكتروني بالرمز). يمكنك العثور على مثال هنا.
نصائح: يجب عليك إنشاء حساب وهمي على Instagram باستخدام صندوق بريد إلكتروني وهمي لاستخدام هذه الميزة.
* يعد حفظ الجلسة باستخدام برنامج تشغيل ذاكرة التخزين المؤقت أمرًا مهمًا للغاية هنا. جلسة الانستقرام صالحة لمدة سنة واحدة . لذا، من الناحية النظرية، سيؤدي استخدام برنامج تشغيل ذاكرة التخزين المؤقت وحساب واحد إلى تشغيل تسجيل دخول حقيقي واحد فقط إلى Instagram ثم إعادة استخدام الجلسة لفترة طويلة.
شكرًا لـibnux وeldark للمساعدة
في الإصدار ^6.0، أصبح تسجيل الدخول إلزاميًا الآن، وسيحفظ ملفات تعريف الارتباط (الجلسة) لمحاكاة الطلبات "الحقيقية" إلى Instagram.
إنهم يقومون بتحسين اكتشاف الروبوتات الخاصة بهم وبدون بيانات الجلسة الحقيقية في طلبات الرؤوس، يمكن أن يتم حظر IP الخاص بك بسهولة بواسطة Instagram.
وبعد ذلك، لا يمكنك جلب الكثير من البيانات دون تسجيل الدخول.
نصائح: عليك فقط إنشاء أو استخدام حساب وهمي لاستخدام هذه الحزمة بسهولة.
الجديد في 6.0 Cache: تطبق هذه المكتبة PSR-6 لتحقيق أقصى قدر من إمكانية التشغيل البيني.
<?php
use Instagram Api ;
use Symfony Component Cache Adapter FilesystemAdapter ;
$ cachePool = new FilesystemAdapter ( ' Instagram ' , 0 , __DIR__ . ' /../cache ' );
$ api = new Api ( $ cachePool );
$ api -> login ( ' username ' , ' password ' ); // mandatory
$ profile = $ api -> getProfile ( ' robertdowneyjr ' );
echo $ profile -> getUserName (); // robertdowneyjr
echo $ profile -> getFullName (); // Robert Downey Jr. Official
<?php
$ api = new Api ( $ cachePool );
$ api -> login ( ' username ' , ' password ' );
$ profile = $ api -> getProfile ( ' robertdowneyjr ' );
print_r ( $ profile );
Instagram Hydrator Component Feed Object
(
[id] => 1518284433
[userName] => robertdowneyjr
[fullName] => Robert Downey Jr. Official
[biography] => @ officialfootprintcoalition @coreresponse
[followers] => 46382057
[following] => 50
[profilePicture] => https: //scontent-cdt1-1.cdninstagram.com/v/t51.2885-19/s320x320/72702032_542075739927421_3928117925747097600_n.jpg?_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_ohc=h2zGWoshNjUAX9ze3jb&oh=cf6441cfc3f258da3bf4cfef29686c7d&oe=5EEEC338
[externalUrl] => http: //coreresponse.org/covid19
[private] =>
[verified] => 1
[mediaCount] => 453
(
[ 0 ] => Instagram ModelInstagramMedia Object
(
[id] => 2307655221969878423
[typeName] => GraphImage
[height] => 1350
[width] => 1080
[thumbnailSrc] => https: //scontent-cdt1-1.cdninstagram.com/v/t51.2885-15/sh0.08/e35/c0.180.1440.1440a/s640x640/96225997_178111910111734_5886065436455432375_n.jpg?_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_cat=1&_nc_ohc=GqcYpSEbz8gAX_GF1Ep&oh=1b293215142d407faca46a2fd28eab71&oe=5EF0EBDF
[link] => https: //www.instagram.com/p/CAGcDKplv2X/
[date] => DateTime Object
(
[date] => 2020 - 05 - 12 22 : 06 : 01.000000
[timezone_type] => 3
[timezone] => Europe/Paris
)
[displaySrc] => https: //scontent-cdt1-1.cdninstagram.com/v/t51.2885-15/e35/p1080x1080/96225997_178111910111734_5886065436455432375_n.jpg?_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_cat=1&_nc_ohc=GqcYpSEbz8gAX_GF1Ep&oh=6c19ddef96fdc07d7926b05e36cb2bed&oe=5EEED2CE
[caption] => The sweetest things are worth waiting for…Susan and I are producing a @Netflix original series, Sweet Tooth, based on the comic by @Jefflemire. Can’t wait to share it with you all. @NXonNetflix @warnerbrostv #SweetTooth
[comments] => 3308
[likes] => 687988
[thumbnails] => Array
(
[ 0 ] => stdClass Object
(
[src] => https: //scontent-cdt1-1.cdninstagram.com/v/t51.2885-15/e35/c0.180.1440.1440a/s150x150/96225997_178111910111734_5886065436455432375_n.jpg?_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_cat=1&_nc_ohc=GqcYpSEbz8gAX_GF1Ep&oh=24b300201afc0e0c82166c6288e0ed5b&oe=5EF00196
[config_width] => 150
[config_height] => 150
)
[ 1 ] => stdClass Object
(
[src] => https: //scontent-cdt1-1.cdninstagram.com/v/t51.2885-15/e35/c0.180.1440.1440a/s240x240/96225997_178111910111734_5886065436455432375_n.jpg?_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_cat=1&_nc_ohc=GqcYpSEbz8gAX_GF1Ep&oh=203d0a3d01d77a2978739c96eb67e607&oe=5EEF6DE0
[config_width] => 240
[config_height] => 240
)
[ 2 ] => stdClass Object
(
[src] => https: //scontent-cdt1-1.cdninstagram.com/v/t51.2885-15/e35/c0.180.1440.1440a/s320x320/96225997_178111910111734_5886065436455432375_n.jpg?_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_cat=1&_nc_ohc=GqcYpSEbz8gAX_GF1Ep&oh=7b9cee64460e1c9c501e59621e6ccfb2&oe=5EF18BE6
[config_width] => 320
[config_height] => 320
)
[ 3 ] => stdClass Object
(
[src] => https: //scontent-cdt1-1.cdninstagram.com/v/t51.2885-15/e35/c0.180.1440.1440a/s480x480/96225997_178111910111734_5886065436455432375_n.jpg?_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_cat=1&_nc_ohc=GqcYpSEbz8gAX_GF1Ep&oh=f3d8c31eca2d3c3ab6653b3ed3ebe4f4&oe=5EEFEAC0
[config_width] => 480
[config_height] => 480
)
[ 4 ] => stdClass Object
(
[src] => https: //scontent-cdt1-1.cdninstagram.com/v/t51.2885-15/sh0.08/e35/c0.180.1440.1440a/s640x640/96225997_178111910111734_5886065436455432375_n.jpg?_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_cat=1&_nc_ohc=GqcYpSEbz8gAX_GF1Ep&oh=1b293215142d407faca46a2fd28eab71&oe=5EF0EBDF
[config_width] => 640
[config_height] => 640
)
)
[location] =>
[video] =>
[videoViewCount] => 0
)
...
[endCursor:InstagramModelInstagramProfile:private] => QVFEblBGclVyOEtCMmRLZkVxUUdVbmhsYXNMZmMmplNWtZRkJnRnZOSUdMM1BDRmt3ZA==
)
إذا كنت تريد استخدام ترقيم الصفحات على الوسائط، فما عليك سوى الاتصال بالطريقة getMoreMedias
.
<?php
$ api = new Api ( $ cachePool );
$ api -> login ( $ credentials -> getLogin (), $ credentials -> getPassword ());
$ profile = $ api -> getProfile ( ' twhiddleston ' );
print_r ( $ profile -> getMedias ()); // 12 first medias
do {
$ profile = $ api -> getMoreMedias ( $ profile );
print_r ( $ profile -> getMedias ()); // 12 more medias
// avoid 429 Rate limit from Instagram
sleep ( 1 );
} while ( $ profile -> hasMoreMedias ());
<?php
use Instagram Api ;
use Symfony Component Cache Adapter FilesystemAdapter ;
$ cachePool = new FilesystemAdapter ( ' Instagram ' , 0 , __DIR__ . ' /../cache ' );
$ api = new Api ( $ cachePool );
$ api -> login ( ' username ' , ' password ' ); // mandatory
$ profile = $ api -> getProfile ( ' starwars ' ); // we need instagram username
sleep ( 1 );
$ feedStories = $ api -> getStories ( $ profile -> getId ());
$ stories = $ feedStories -> getStories ();
print_r ( $ stories );
شكرًا لهؤلاء الأشخاص الرائعين (مفتاح الرموز التعبيرية):
بيير جريمود | جان أوستلوند | تيم بوند | دليني | رينيه | إيكيسيليف1989 | بيزوفاك |
ديفيد جريمينجر | نانا يماني | ديفيد كورنيوان | com.gtapps | تشون شنغ، لي | schelmo | مجتبى |
جورجي جوسيف | جبران اعجاز | جوليان كوزين أليوت | ن-ريتشود | ديمتري أفونين | أندريه فيرويو | فيكي براتاما |
كارل | بيتر كامبجيس | بوب براون | com.nagajoomlapro | كليفينج | BMRG14 | سنان بورتاكال |
Deepvision7 | يوسف أوزدمير | قادر مليح كان |
يتبع هذا المشروع مواصفات جميع المساهمين. المساهمات من أي نوع موضع ترحيب!
هل وجدت خطأ؟ هل تحتاج إلى ميزة جديدة؟ يمكنك إنشاء مشكلة إذا لزم الأمر أو الاتصال بي على تويتر.
مرخصة بموجب شروط ترخيص MIT.