如何检测用户是否关注Instagram账号以实现关注发积分功能
问题解答
方案失效原因
你用到的3种实现本质都是无登录爬取Instagram公开页面数据,Instagram有严格的反爬虫机制,出现本地可用、部署失效的问题完全是意料之中:
- 本地运行时使用的是你个人的民用IP,请求频率低、访问特征和普通用户一致,短时间内不会被平台拦截
- 部署到Firebase这类云服务器后,云厂商的服务器IP段早就被Instagram标记为高风险爬虫IP,所有请求会被直接拦截:要么返回登录验证页面,要么返回加密压缩的乱码内容,自然无法正常解析出粉丝数
另外你用到的/__a=1属于Instagram未公开的非正式接口,已经被限制多年,未登录状态下只有极低概率能拿到正常返回,后续请求100%会被拦截,本身就不适合用于生产环境。
你原本设想的通过粉丝数上涨判断用户是否关注的方案漏洞也非常大,无法将粉丝增长和具体用户精准对应,很容易被薅羊毛,完全不推荐使用。
推荐实现方案
不要使用爬虫类方案,直接调用Meta官方提供的Instagram Graph API实现即可,这也是LoyaltyLion这类产品的底层实现逻辑,稳定性和合规性都有保障,具体流程如下:
- 注册Meta开发者账号,创建应用并申请Instagram Basic Display API的
user_profile、user_follows权限,官方审核通过后即可投入使用 - 用户点击网站上的「关注领积分」按钮时,弹出Instagram官方OAuth授权窗口,引导用户登录自己的Instagram账号并完成授权
- 授权成功后你可以拿到用户的有效access token,调用官方接口即可查询该用户的关注列表中是否包含你的商家账号,验证通过后发放对应积分即可
如果要实现点击按钮自动完成关注的效果,额外申请对应关注操作的接口权限即可,用户授权后可以直接调用接口完成关注,无需用户手动跳转操作,体验和你提到的LoyaltyLion效果完全一致。
内容的提问来源于stack exchange,提问作者Ming the merciless
相关产品推荐
相关产品推荐

