当你 google「Instagram 图片 下载」时
会发现不是要你用打开某网站然后操作操作操作!#%#!@!最后才能下载,不然就是要下载APP然后又是操作操作操作!@#$@%##$%^才能下载
OS:「想下载一张图片也太麻烦了吧!」
不用担心了!因为真正的 Instagram 下载神器出炉了!操作简单快速又方便,又可以快速跟在 Line 群组与好友们一起分享图片!
以下会先讲解製作此专案时时运用 API 的逻辑,欢迎大家一起串接实作~
我用此篇 API 实作了一个【Instagram小帮手】的 Linebot
以下为实作 Demo 结果
开始实作前,先告知大家,此做法有风险,因为有可能该帐号会被封锁的危险XD
取得帐户资料后请勿做商业行为,否则后果自行承担唷~
进入正题
此次实作目的:
获取 Instagram 上公开帐号的的资料(照片/影片/文章/爱心数/留言数等等)获取 Instagram 个人帐户中的追蹤名单需要使用的api为以下:
https://www.instagram.com/{account}/?a=1https://www.instagram.com/graphql/query/?query_hash={XXXXXXXXXXXX}第一组 api 只需要输入该 Instagram 的 account 即可取得资讯
第二组 api 只要 query_hash
参数不同,就能对应到各种不同的 api,所以需要仔细观察一下喔~
实作步骤为:
先获取 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,很重要!! ... ... } } }
透过步骤一的 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 //等等下个步骤会使用到,是取得单篇文章的资讯 } }, ... ... ] .... } } } }
透过步骤二的 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 用户的个人资料了
总结
最后需要提醒一下
上述 Instagram api 仅能取得
公开帐号
公开帐号
公开帐号
的资料,很重要!需要讲三遍XD
私人帐号的部分
毕竟 Instagram 本来就有固定规则是「先追蹤,若对方同意追蹤」才能查看资料
或许有人会质疑:「干嘛这么大费周章!我直接看IG就好了啊!」
我的答覆:「实作动机是我在IG上有追蹤一个可爱的明星,然后有天看到她po文章照片,我实在觉得很可爱XD,想要保存照片当作手机桌布(抱歉癡汉本色爆发XDD),但此时我发现IG没有提供【下载图片/影片】的功能,然而必须要透过电脑浏览器的开发者模式,找到相对应的 Elements,再细追图片来源在哪或者是找另外的app或网站额外下载。
由于这样实在太麻烦了!所以才做了这个 Linebot,同时如果在朋友群组内也可以直接显示该IG帐号的照片让朋友一起看,而且不得不说....Linebot的轮播效果真的很棒,所以看的时候观感更好XDDD」
最后附上传送门
ID可搜寻:@418jlhkf
(由于server是架在heroku上,难免会有输入后出现等待的情况...相信工程师各位都能了解QQ)
其实还有蛮多小细节,例如cookie或其他更多的应用方式其实没讲到
若真的有蛮多人对此专案有兴趣的话
我会在写详细的教学实作文章出来并放上 source code
感谢大大们的观看