คำเตือน 31-12-2566 - เวอร์ชัน 7.0.0 จะหยุดรองรับ PHP < 8.2
คำเตือน 09-11-2565 - 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-2566:
เวอร์ชัน 6.16.6 - 31-12-2566:
เวอร์ชัน 6.16.5 - 24-12-2566:
$profile->getMedias()
จะส่งกลับอาร์เรย์ว่างเสมอหลังจากเรียก $api->getProfile()
จำเป็นต้องเรียก $api->getMoreMedias($profile)
เพื่อส่งคืนสื่อ 12 รายการแรก (cookieguru)เวอร์ชัน 6.16 - 02-08-2022:
เวอร์ชัน 6.15 - 02-06-2022:
เวอร์ชัน 6.12 - 20-09-2021:
เวอร์ชัน 6.11 - 13-09-2021:
เวอร์ชัน 6.10 - 03-09-2021:
เวอร์ชัน 6.9 - 02-09-2021:
เวอร์ชัน 6.8 - 08-07-2021:
เวอร์ชัน 6.7 - 31-01-2021:
เวอร์ชัน 6.6 - 06-10-2020:
เวอร์ชัน 6.5 - 14-09-2020:
เวอร์ชัน 6.4 - 30-08-2020:
เวอร์ชัน 6.3 -2020-07-03:
เวอร์ชัน 6.2 - 06-06-2020:
เวอร์ชัน 6.1 - 21-05-2020:
เวอร์ชัน 6.0 - 2020-05-20
Facebook เพิ่มนโยบาย 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 มีอายุ... 1 ปี ตามทฤษฎีแล้ว การใช้ไดรเวอร์แคชและบัญชีเดียวจะทริกเกอร์การเข้าสู่ระบบ Instagram จริงเพียงครั้งเดียว จากนั้นจึงนำเซสชันกลับมาใช้ใหม่เป็นเวลานาน
ขอบคุณ @ibnux และ @eldark สำหรับความช่วยเหลือ
ในเวอร์ชัน ^6.0 ตอนนี้ จำเป็นต้อง เข้าสู่ระบบ โดยจะบันทึกคุกกี้ (เซสชัน) เพื่อจำลองคำขอ "จริง" ไปยัง Instagram
พวกเขาปรับปรุงการตรวจจับบอท และหากไม่มีข้อมูลเซสชันจริงในคำขอส่วนหัว IP ของคุณอาจถูกแบนโดย Instagram ได้อย่างง่ายดาย
จากนั้น คุณจะไม่สามารถดึงข้อมูลจำนวนมากได้หากไม่มีการเข้าสู่ระบบ
เคล็ดลับ: คุณเพียงแค่ต้องสร้างหรือใช้บัญชีจำลองเพื่อใช้งานแพ็คเกจนี้ได้อย่างง่ายดาย
สิ่งใหม่ในแคช 6.0 : ไลบรารีนี้ใช้ 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 | เพจวัค |
เดวิด เกรมิงเจอร์ | นานา ยามาเนะ | เดวิด เคอร์เนียวาน | gtapps | ชุนเซิง, หลี่ | สเชลโม | มอยตาบา |
จอร์จี กูเซฟ | ญิบราน อิจาซ | จูเลียน ลูกพี่ลูกน้อง-อัลเลียต | n-richaud | มิทรี อาโฟนิน | อังเดร ฟิรอย | ฟิกิ ปราทามา |
คาร์ล | ปีเตอร์ คัมเยส | บ๊อบ บราวน์ | นากาจูมลาโปร | ฉลาด | BMRG14 | ซินัน ปอร์ตากัล |
วิสัยทัศน์ลึก7 | ยูซุฟ ออซเดมีร์ | กาดีร์ เมลิห์ คาน |
โครงการนี้เป็นไปตามข้อกำหนดของผู้มีส่วนร่วมทั้งหมด ยินดีต้อนรับการบริจาคใด ๆ !
คุณพบข้อผิดพลาดหรือไม่? คุณต้องการคุณสมบัติใหม่หรือไม่? คุณสามารถสร้างปัญหาได้หากจำเป็นหรือติดต่อฉันทาง Twitter
ได้รับอนุญาตภายใต้เงื่อนไขของใบอนุญาต MIT