Saya mencoba menempatkan media Instagram terbaru pengguna di sidebar. Saya mencoba menggunakan API Instagram untuk mengambil media.
http://instagram.com/developer/endpoints/users/
Dokumentasi mengatakan kepada GET https://api.instagram.com/v1/users/<user-id>/media/recent/
, tetapi dikatakan untuk melewati token akses OAuth. Token akses mewakili otorisasi untuk bertindak atas nama pengguna. Saya tidak ingin pengguna masuk ke Instagram untuk melihat ini di sidebar. Mereka bahkan tidak perlu memiliki akun Instagram.
Misalnya, saya bisa mengunjungi http://instagram.com/thebrainscoop tanpa login ke Instagram dan melihat foto. Saya ingin melakukannya melalui API.
Di Instagram API, permintaan yang tidak diautentikasi pengguna melewati a client_id
bukannya access_token
. Jika saya mencobanya, saya mendapatkan:
{
"meta":{
"error_type":"OAuthParameterException",
"code":400,
"error_message":"\"access_token\" URL parameter missing. This OAuth request requires an \"access_token\" URL parameter."
}
}
Jadi, apakah ini tidak mungkin? Apakah tidak ada cara untuk mengambil media terbaru (publik) pengguna tanpa meminta pengguna untuk login ke akun Instagram melalui OAuth terlebih dahulu?
sumber
Jawaban:
Ini terlambat, tetapi bermanfaat jika itu membantu seseorang karena saya tidak melihatnya di dokumentasi Instagram.
Untuk menjalankan GET
https://api.instagram.com/v1/users/<user-id>/media/recent/
(saat ini penulisan) Anda sebenarnya tidak perlu token akses OAuth.Anda bisa tampil
https://api.instagram.com/v1/users/[USER ID]/media/recent/?client_id=[CLIENT ID]
[ID KLIEN] akan menjadi id klien yang sah yang terdaftar di aplikasi melalui mengelola klien (tidak terkait dengan pengguna apa pun). Anda bisa mendapatkan [ID PENGGUNA] dari nama pengguna dengan melakukan permintaan pencarian pengguna GET:
https://api.instagram.com/v1/users/search?q=[USERNAME]&client_id=[CLIENT ID]
sumber
Anda dapat mengunduh umpan foto pengguna Instagram apa pun dalam format JSON menggunakan di
?__a=1
sebelah alamat laman landas seperti ini . Tidak perlu mendapatkan id pengguna atau mendaftar aplikasi, tidak ada token, tidak ada oAuth.min_id
danmax_id
variabel dapat digunakan untuk pagination, di sini adalah contohYQL
mungkin tidak berfungsi di sini di dalam iframe terpotong, jadi Anda selalu dapat memeriksanya secara manual di YQL ConsolePEMBARUAN APRIL 2018: Setelah pembaruan instagram terbaru Anda tidak dapat melakukan ini di sisi klien (javascript) karena header khusus untuk permintaan yang ditandatangani tidak dapat ditetapkan dengan javascript karena
CORS
Access-Control-Allow-Headers
pembatasan. Masih mungkin untuk melakukan ini melaluiphp
atau metode sisi server lain dengan tanda tangan yang tepat berdasarkanrhx_gis
,csrf_token
dan parameter permintaan. Anda dapat membaca lebih lanjut di sini .JANUARI 2019 PEMBARUAN: YQL sudah pensiun, jadi, periksa pembaruan terakhir saya dengan Google Image Proxy sebagai
CORS
proxy untuk halaman Instagram! Maka hanya momen negatif - pagination tidak tersedia dengan metode ini.PHP
larutan:sumber
11.11.2017
Karena Instagram mengubah cara mereka menyediakan data ini, tidak ada metode di atas yang berfungsi saat ini. Berikut ini cara baru untuk mendapatkan media pengguna:
DAPATKAN
https://instagram.com/graphql/query/?query_id=17888483320059182&variables={"id":"1951415043","first":20,"after":null}
Di mana:
query_id
- nilai permanen: 17888483320059182 (perhatikan bahwa mungkin akan berubah di masa mendatang).id
- id pengguna. Itu mungkin datang dengan daftar pengguna. Untuk mendapatkan daftar pengguna, Anda dapat menggunakan permintaan berikut:GET https://www.instagram.com/web/search/topsearch/?context=blended&query=YOUR_QUERY
first
- jumlah item yang akan didapat.after
- id dari item terakhir jika Anda ingin mendapatkan item dari id itu.sumber
query_id
adalah nilai permanen. Itu berarti selalu 17888483320059182 (setidaknya kecuali Instagram mengubahnya). id pengguna - adalah id pengguna (diedit jawaban saya sedikit)Saya bisa mendapatkan media terbaru dari pengguna menggunakan API berikut tanpa otentikasi (termasuk deskripsi, suka, jumlah komentar).
https://www.instagram.com/apple/?__a=1
Misalnya
sumber
Sampai minggu lalu, Instagram menonaktifkan
/media/
url, saya menerapkan solusi, yang berfungsi cukup baik untuk saat ini.Untuk mengatasi masalah semua orang di utas ini, saya menulis ini: https://github.com/whizzzkid/instagram-reverse-proxy
Ini menyediakan semua data publik instagram menggunakan titik akhir berikut:
Dapatkan media pengguna:
Dapatkan media pengguna dengan jumlah batas:
Gunakan JSONP:
API proksi juga menambahkan halaman berikutnya dan URL halaman sebelumnya ke respons sehingga Anda tidak perlu menghitungnya di akhir.
Semoga kalian menyukainya!
Terima kasih kepada @ 350D untuk mengetahui hal ini :)
sumber
Instagram API membutuhkan otentikasi pengguna melalui OAuth untuk mengakses titik akhir media terbaru untuk pengguna. Tampaknya tidak ada cara lain sekarang untuk mendapatkan semua media untuk pengguna.
sumber
Jika Anda mencari cara untuk menghasilkan token akses untuk digunakan pada satu akun, Anda dapat mencoba ini -> https://coderwall.com/p/cfgneq .
Saya membutuhkan cara untuk menggunakan api instagram untuk mengambil semua media terbaru untuk akun tertentu.
sumber
Inilah solusi rel. Ini semacam pintu belakang, yang sebenarnya adalah pintu depan.
Objek yang Anda dapatkan bervariasi tergantung pada apakah itu pencarian pengguna atau pencarian tag. Saya mendapatkan data seperti ini:
Saya kemudian mendapatkan halaman hasil lain dengan membuat url dengan cara berikut:
sumber
Berkat skema API Instagram yang terus berubah (dan dirancang dengan mengerikan), sebagian besar di atas tidak akan berfungsi lagi pada April 2018.
Berikut ini jalur terbaru untuk mengakses data setiap posting jika Anda menanyakan API mereka secara langsung menggunakan
https://www.instagram.com/username/?__a=1
metode ini.Dengan asumsi
JSON
data yang dikembalikan adalah$data
Anda dapat mengulangi setiap hasil menggunakan contoh jalur berikut:Hal utama dalam perubahan terbaru ini adalah
graphql
danedge_owner_to_timeline_media
.Sepertinya mereka akan mematikan akses API ini untuk pelanggan yang bukan 'bisnis' pada bulan Desember 2018 jadi manfaatkan semaksimal mungkin.
Semoga ini bisa membantu seseorang;)
sumber
JSFiddle
Javascript:
HTML:
CSS:
sumber
Hanya ingin menambahkan jawaban @ 350D, karena sulit bagi saya untuk mengerti.
Logika saya dalam kode adalah sebagai berikut:
Saat memanggil API pertama kali, saya hanya menelepon
https://www.instagram.com/_vull_ /media/
. Ketika saya menerima respons, saya memeriksa nilai boolean darimore_available
. Jika ini benar, saya mendapatkan foto terakhir dari array, mendapatkan id-nya dan memanggil Instagram API lagi tapi kali inihttps://www.instagram.com/_vull_/media/?max_id=1400286183132701451_1642962433
.Hal penting yang perlu diketahui di sini, Id ini adalah Id dari gambar terakhir dalam array. Jadi ketika meminta maxId dengan id terakhir dari gambar dalam array, Anda akan mendapatkan 20 gambar berikutnya, dan seterusnya.
Semoga ini memperjelas hal.
sumber
Jika Anda melewati Oauth, Anda mungkin tidak akan tahu pengguna instagram mana mereka. Itu dikatakan ada beberapa cara untuk mendapatkan gambar instagram tanpa otentikasi.
API Instagram memungkinkan Anda melihat gambar paling populer pengguna tanpa mengautentikasi. Menggunakan titik akhir berikut: Berikut ini tautannya
Instagram menyediakan rss feed untuk tag di sini .
Halaman pengguna Instagram bersifat publik, sehingga Anda dapat menggunakan PHP dengan CURL untuk mendapatkan halaman mereka dan pengurai DOM untuk mencari html untuk tag gambar yang Anda inginkan.
sumber
Satu trik lagi, cari foto dengan tagar:
Dimana:
query_hash
- nilai permanen (saya percaya hash-nya 17888483320059182, dapat diubah di masa depan)tag_name
- judul berbicara sendirifirst
- jumlah item yang didapat (saya tidak tahu mengapa, tetapi nilai ini tidak berfungsi seperti yang diharapkan. Jumlah foto yang dikembalikan sebenarnya sedikit lebih besar dari nilai dikalikan 4,5 (sekitar 110 untuk nilai 25, dan sekitar 460 untuk nilai 100))after
- id dari item terakhir jika Anda ingin mendapatkan item dari id itu. Nilai dariend_cursor
respons JSON dapat digunakan di sini.sumber
Nah, saat
/?__a=1
berhenti bekerja sekarang, lebih baik menggunakan curl dan parsing halaman instagram seperti yang ditulis di jawaban ini: Hasilkan token akses API Instagram, tanpa harus login?sumber
Jika Anda ingin mencari pengguna tanpa memiliki clientID dan token akses:
1: Jika Anda ingin mencari semua pengguna memiliki nama yang mirip dengan kata pencarian Anda:
ganti SeachName dengan teks yang ingin Anda cari:
https://www.instagram.com/web/search/topsearch/?query=SearchName
2: jika Anda ingin mencari nama pengguna yang persis sama:
ganti UserName dengan Nama pencarian yang Anda inginkan:
sumber
Anda dapat menggunakan API ini untuk mengambil info publik dari pengguna instagram:
https://api.lityapp.com/instagrams/thebrainscoop?limit=2
Jika Anda tidak menetapkan parameter batas, posting dibatasi pada 12 secara default.
Ini api dibuat di SpringBoot dengan HtmlUnit seperti yang Anda lihat dalam kode:
Ini adalah contoh respons:
sumber
Saya benar-benar membutuhkan fungsi ini tetapi untuk Wordpress. Saya cocok dan itu bekerja dengan sempurna
sumber
Kode simpul di bawah ini menghapus Gambar populer dari Halaman Instagram. Fungsi 'ScrapeInstagramPage' menangani efek pasca penuaan.
Coba di sini
Contoh: Untuk diberikan URL ' https://www.instagram.com/dress_blouse_designer/ ' orang dapat memanggil fungsi
sumber
Ini bekerja menggunakan panggilan ajax sederhana dan iterating path gambar.
sumber
Berikut ini adalah skrip php yang mengunduh gambar dan membuat file html dengan tautan pada gambar. Kredit 350D untuk versi php, ini hanya diuraikan .. Saya akan menyarankan menempatkan ini adalah pekerjaan cron dan menembak namun sering Anda butuhkan. Diverifikasi bekerja pada Mei 2019 .
sumber