[Linebot] 来吧!Instagram 图片/影音快速下载神器!我想要IG上的男/女神们照片

当你 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,所以需要仔细观察一下喔~

实作步骤为:

  1. 先获取 Instagram 上公开帐号的 ID 流水号(此部分很重要,因为後面所有 api 都需要 ID 的存在)
    打这支 https://www.instagram.com/{account}/?a=1
    理应回传的资料应该为
    {
        "logging_page_id":"profilePage_XXXXXXXX",
        "show_suggested_profiles":false,
        "show_follow_dialog":false,
        "graphql": {
            "user": {
                ...
                ...
                "id": "XXXXXXX", //用户ID,很重要!!
                ...
                ...
            }
        }
     }
  1. 透过步骤一的 ID 获取 Instagram 上公开帐号文章列表
    打这支 https://www.instagram.com/graphql/query/?参数
    参数:query_id=17888483320059182&id={刚刚取得用户ID}&first={要显示数量(最多50笔)} > *固定的 query_id,表示只要用这组query_id就可以取得个人文章列表
    理应回传的资料应该为
    {
        "data": {
            "user": {
                "edge_owner_to_timeline_media": {
                "page_info": {
                    "has_next_page": true,
                    "end_cursor": "XXXXXXXXX" //上方after该带入的资料
                    },
                 "edges":[
                     {
                         "node":{
                         ...
                         ...
                         ...
                         "shortcode":XXXXXX //等等下个步骤会使用到,是取得单篇文章的资讯
                         }
                     },
                     ...
                     ...
                 ]
                 ....
                }
            } 
        }
    }
  1. 透过步骤二的 shortcode 获取 Instagram 上公开帐号单篇文章资讯
    打这支 https://www.instagram.com/graphql/query/?参数一&参数二
    参数一:query_hash=2c4c2e343a8f64c625ba02b2aa12c7f8 > 固定的 queryhash,表示只要用这组queryhash就可以取得个人单篇文章资料
    参数二:variables = { "shortcode":"XXXXXXXXX" }
    理应回传的资料应该为
{
    "data": {
    "shortcode_media": {
        "__typename": "GraphSidecar",
        "id": "2487561472394557464",
        "shortcode": "CKFl_q_BngY",
        ...
        ...
        ...
    }
}

整个api逻辑是这样
如此一来就能获的 Instagram 用户的个人资料了/images/emoticon/emoticon42.gif


总结
最後需要提醒一下
上述 Instagram api 仅能取得

公开帐号

公开帐号

公开帐号

的资料,很重要!需要讲三遍XD

私人帐号的部分

毕竟 Instagram 本来就有固定规则是「先追踪,若对方同意追踪」才能查看资料

或许有人会质疑:「干嘛这麽大费周章!我直接看IG就好了啊!」
我的答覆:「实作动机是我在IG上有追踪一个可爱的明星,然後有天看到她po文章照片,我实在觉得很可爱XD,想要保存照片当作手机桌布(抱歉痴汉本色爆发XDD),但此时我发现IG没有提供【下载图片/影片】的功能,然而必须要透过电脑浏览器的开发者模式,找到相对应的 Elements,再细追图片来源在哪或者是找另外的app或网站额外下载。
由於这样实在太麻烦了!所以才做了这个 Linebot,同时如果在朋友群组内也可以直接显示该IG帐号的照片让朋友一起看,而且不得不说....Linebot的轮播效果真的很棒,所以看的时候观感更好XDDD」

最後附上传送门
ID可搜寻:@418jlhkf
Instagram小帮手
(由於server是架在heroku上,难免会有输入後出现等待的情况...相信工程师各位都能了解QQ)

其实还有蛮多小细节,例如cookie或其他更多的应用方式其实没讲到
若真的有蛮多人对此专案有兴趣的话
我会在写详细的教学实作文章出来并放上 source code
感谢大大们的观看
/images/emoticon/emoticon41.gif


<<:  Joining Two More Locales for the 2021 Lottery Millionaire Raffle!

>>:  ReactFiber节点的更新入口:beginWork

4 种方法彻底移除 Mac App

方法一,透过「Finder」删除从其他来源安装的 Mac 应用程序 如果你的应用程序并非从 Mac ...

Python 演算法 Day 1 - 程序基础 & 简介

Chap.O 程序基础 & 简介: Part 1. 常用於演算法的开发程序,有以下几种: 1...

Day 30 总结

初次见面的各位初次见面,好久不见的各位好久不见(才一天)。今天没什麽要说的,只想谈谈这30天的一些心...

Day5 - 关於订阅报价、订阅数上限及计算方式

在设定完帐户後,我们就可以实际收取报价资料以及下单了。 如果要收取商品报价资料,我们会使用subsc...

Day 7 Functions

今天要来对 function 来做深入一点的介绍。 如果想要把 function 存在变数里,可以对...