當你 google「Instagram 圖片 下載」時
會發現不是要你用打開某網站然後操作操作操作!#%#!@!最後才能下載,不然就是要下載APP然後又是操作操作操作!@#$@%##$%^才能下載
OS:「想下載一張圖片也太麻煩了吧!」
不用擔心了!因為真正的 Instagram 下載神器出爐了!操作簡單快速又方便,又可以快速跟在 Line 群組與好友們一起分享圖片!

以下會先講解製作此專案時時運用 API 的邏輯,歡迎大家一起串接實作~

我用此篇 API 實作了一個【Instagram小幫手】的 Linebot
以下為實作 Demo 結果

開始實作前,先告知大家,此做法有風險,因為有可能該帳號會被封鎖的危險XD

小提醒:取得帳戶資料後請勿做商業行為,否則後果自行承擔唷~

進入正題

此次實作目的:

  • 獲取 Instagram 上公開帳號的的資料(照片/影片/文章/愛心數/留言數等等)
  • 獲取 Instagram 個人帳戶中的追蹤名單

需要使用的api為以下:

  1. https://www.instagram.com/{account}/?a=1
  2. https://www.instagram.com/graphql/query/?query_hash={XXXXXXXXXXXX}

第一組 api 只需要輸入該 Instagram 的 account 即可取得資訊
第二組 api 只要 query_hash 參數不同,就能對應到各種不同的 api,所以需要仔細觀察一下喔~

取得 query_hash 方法為開啟你的 instagram,登入你自己的帳號後,請開啟 devtools,仔細查看所有 instagram API,如果怕找不到 API,可以先清除所有封包,然後再隨機點擊任一帳號,查看送出來的 API,其中 API URL 後面的參數就會有query_hash

實作步驟為

步驟一:
先獲取 Instagram 上公開帳號的 ID 流水號(此部分很重要,因為後面所有 api 都需要 ID 的存在)
打這支 https://www.instagram.com/{account}/?a=1
理應回傳的資料應該為

步驟二:
透過步驟一的 ID 獲取 Instagram 上公開帳號文章列表
打這支 https://www.instagram.com/graphql/query/?參數一&參數二

參數一:query_hash=XXXXXXXXXXXXXXXX > 固定的 queryhash,表示只要用這組queryhash就可以取得個人資料
參數二:variables = { id = 剛剛取得用戶 ID, first= 想要顯示數量(最多50筆), after: end_cursor(如沒有帶這個參數預設就會是第一頁) }
理應回傳的資料應該為

步驟三:
透過步驟二的 shortcode 獲取 Instagram 上公開帳號單篇文章資訊
打這支 https://www.instagram.com/graphql/query/?參數一&參數二
參數一:query_hash=XXXXXXXXXXXXXXXX > 固定的 queryhash,表示只要用這組queryhash就可以取得個人資料
參數二:variables = { "shortcode":"XXXXXXXXX" }
理應回傳的資料應該為

整個api邏輯是這樣
如此一來就能獲的 Instagram 用戶的個人資料了 😆

總結
最後需要提醒一下
上述 Instagram api 僅能取得

公開帳號

公開帳號

公開帳號

資料。
很重要!需要講三遍!

私人帳號的部分
畢竟 Instagram 本來就有固定規則是「先追蹤,若對方同意追蹤」才能查看資料

或許有人會質疑:「幹嘛這麼大費周章!我直接看IG就好了啊!」
我的答覆:「實作動機是我在IG上有追蹤一個可愛的明星,然後有天看到她po文章照片,我實在覺得很可愛XD,想要保存照片當作手機桌布(抱歉癡漢本色爆發XDD),但此時我發現IG沒有提供【下載圖片/影片】的功能,然而必須要透過電腦瀏覽器的開發者模式,找到相對應的 Elements,再細追圖片來源在哪。
這樣實在太麻煩了!所以才做了這個 Linebot,同時如果在朋友群組內也可以直接顯示該IG帳號的照片讓朋友一起看,而且不得不說….Linebot的輪播效果真的很棒,所以看的時候觀感更好XDDD」

最後附上傳送門
ID可搜尋:@418jlhkf

(由於 Server 是架在 heroku 上,難免會有輸入後出現等待的情況…相信工程師各位都能瞭解QQ)

若真的有蠻多人對此專案有興趣的話
我會在寫詳細的教學實作文章出來並放上 source code
感謝大大們的觀看

--

--