instagram月活十亿+的用户,流量无论你是做cpa推广还是卖货效果都是杠杠滴,tiktok那么火上面用户的消费能力也比不上instagram。这一个平台能上车个人做可以买房买车迎娶白富美,团队做可以喝酒吃肉实现一个小目标。72版本的登录协议
.版本 2
.支持库 Krnlnex
.支持库 spec
.子程序 login_http, 逻辑型
.局部变量 postdata, 文本型
.局部变量 返回文本, 文本型
.局部变量 临时数组, 文本型, , "0"
.局部变量 x, 整数型
.局部变量 临时文本, 文本型
.如果真 (user.header = “”) ' //新登录
creatregheader (user)
.如果真结束
调试输出 (“开始登陆”)
http.Open (“get”, “https://i.instagram.com/api/v1/accounts/login/”)
设置协议头 ()
http.Send ()
user.cookies = http.GetAllResponseCookies ()
调试输出 (“获取到的cookies:” + user.cookies)
.如果真 (user.cookies = “”)
调试输出 (“取cookie失败,登陆失败”)
返回 (假)
.如果真结束
临时数组 = 分割文本 (user.cookies, “;”, )
.计次循环首 (取数组成员数 (临时数组), x) ' //取token
.如果真 (寻找文本 (临时数组 [x], “csrftoken”, , 假) ≠ -1)
调试输出 (临时数组 [x])
user.cftoken = 取文本右边 (临时数组 [x], 32)
调试输出 (user.cftoken)
跳出循环 ()
.如果真结束
.计次循环尾 ()
postdata = 子文本替换 (postdata, “#cftoken#”, user.cftoken, , , 真)
postdata = 子文本替换 (#logindata_72, “#phoneid#”, user.phone_id, , , 真)
postdata = 子文本替换 (postdata, “#cftoken#”, user.cftoken, , , 真)
.如果 (user.username = “”)
postdata = 子文本替换 (postdata, “#username#”, user.email, , , 真)
.否则
postdata = 子文本替换 (postdata, “#username#”, user.username, , , 真)
.如果结束
postdata = 子文本替换 (postdata, “#adid#”, user.adid, , , 真)
postdata = 子文本替换 (postdata, “#guid#”, user.guid, , , 真)
postdata = 子文本替换 (postdata, “#deviceid#”, user.androidid, , , 真)
postdata = 子文本替换 (postdata, “#password#”, user.password, , , 真)
postdata = URLEncodeUtf8 (postdata)
postdata = “signed_body=” + HMAC_SHA256 (postdata, “19ce5f445dbfd9d29c59dc2a78c616a7fc090a8e018b9267bc4240a30244c53b”) + “.” + 子文本替换 (postdata, “%5F”, “_”, , , 真) + “&ig_sig_key_version=4”
调试输出 (postdata)
http.Open (“post”, “https://i.instagram.com/api/v1/accounts/login/”)
设置协议头 ()
http.SetContentType (“application/x-www-form-urlencoded; charset=UTF-8”)
http.Send (postdata)
临时cookies = http.GetAllResponseCookies ()
user.cookies = 网页_Cookie合并更新 (user.cookies, 临时cookies)
返回文本 = http.GetResponseTextUtf8ToAnsi () ' 输出 返回文本
输出调试文本 (“第一次返回文本:” + 返回文本)
.判断开始 (寻找文本 (返回文本, “status” + #引号 + “:” + #引号 + “ok”, , 假) ≠ -1) ' ///账号chenggong登陆
获取电话号码 ()
user.uid = 文本_取出中间文本 (返回文本, “pk” + #引号 + “:”, “, ” + #引号 + “username”)
返回 (真)
.默认
.判断结束
.判断开始 (寻找文本 (返回文本, “We can't find an account with”, , 假) ≠ -1) ' ///账号不存在
user.错误文本 = “ban”
返回 (假)
.默认
.判断结束
' Your account has been disabled for violating our terms
.判断开始 (寻找文本 (返回文本, “Your account has been disabled for violating our terms”, , 假) ≠ -1) ' ///账号被封
user.错误文本 = “ban”
返回 (假)
.默认
.判断结束
.判断开始 (寻找文本 (返回文本, “instagram.com/challenge/?next=/api/v1/users/”, , 假) ≠ -1) ' ///需要谷歌验证,
临时文本 = 文本_取出中间文本 (返回文本, “/api/v1/users/”, “/info/”)
http.Open (“get”, “https://i.instagram.com/challenge/?next=/api/v1/users/” + 临时文本 + “/info/”)
设置协议头 ()
http.SetCookie (user.cookies)
http.Send ()
临时cookies = http.GetAllResponseCookies ()
user.cookies = 网页_Cookie合并更新 (user.cookies, 临时cookies)
返回文本 = http.GetResponseTextUtf8ToAnsi () ' 输出 返回文本
输出调试文本 (返回文本)
user.错误文本 = “ban”
返回 (假)
.默认
.判断结束
.判断开始 (寻找文本 (返回文本, “instagram.com/challenge/”, , 假) ≠ -1) ' ///需要邮箱验证,
临时文本 = 文本_取出中间文本 (返回文本, “.instagram.com/challenge/”, “/” + #引号 + “, ” + #引号 + “api_path”)
调试输出 (临时文本)
http.Open (“get”, “https://i.instagram.com/api/v1/challenge/” + 临时文本 + “/?guid=” + user.guid + “&device_id=” + user.androidid)
设置协议头 ()
' http.SetCookie (user.cookies)
http.Send ()
临时cookies = http.GetAllResponseCookies ()
user.cookies = 网页_Cookie合并更新 (user.cookies, 临时cookies)
返回文本 = http.GetResponseTextUtf8ToAnsi () ' 输出 返回文本
输出调试文本 (“第二次返回文本:” + 返回文本)
' https://i.instagram.com/challenge/12024577264/TuOwrgVXof/?guid=9f0c0493-fb54-4f96-954a-20e223d45baf\u0026device_id=android-7qms1qtijj4dqxxb
.判断开始 (寻找文本 (返回文本, “i.instagram.com/challenge/”, , 假) ≠ -1) ' ////假死
http.Open (“get”, “https://i.instagram.com/challenge/” + 临时文本 + “/?guid=” + user.guid + “&device_id=” + user.androidid)
设置协议头 ()
' http.SetCookie (user.cookies)
http.Send ()
临时cookies = http.GetAllResponseCookies ()
user.cookies = 网页_Cookie合并更新 (user.cookies, 临时cookies)
返回文本 = http.GetResponseTextUtf8ToAnsi () ' 输出 返回文本
' 输出调试文本 (“第3次返回文本:” + 返回文本)
返回 (假)
.默认
.判断结束
.判断开始断 (寻找文本 (返回文本, “guid=”, , 假) ≠ -1) ' ////假死
' user.错误文本 = “ban”
' 返回 (假)
.默认
.判断结束
.判断开始 (寻找文本 (返回文本, “close”, , 假) ≠ -1) ' ////账号被封
user.错误文本 = “ban”
返回 (假)
.默认
.判断结束
.判断开始 (寻找文本 (返回文本, “select_verify_method”, , 假) ≠ -1) ' //选择验证方式,申请验证码
postdata = 子文本替换 (#emailverifydata_72, “#cftoken#”, user.cftoken, , , 真)
postdata = 子文本替换 (postdata, “#guid#”, user.guid, , , 真)
postdata = 子文本替换 (postdata, “#device_id#”, user.androidid, , , 真)
postdata = “signed_body=” + HMAC_SHA256 (postdata, “19ce5f445dbfd9d29c59dc2a78c616a7fc090a8e018b9267bc4240a30244c53b”) + “.%7B%22choice%22%3A%221%22%2C%22_csrftoken%22%3A%22” + user.cftoken + “%22%2C%22guid%22%3A%22” + user.guid + “%22%2C%22device_id%22%3A%22” + user.androidid + “%22%7D&ig_sig_key_version=4”
http.Open (“post”, “https://i.instagram.com/api/v1/challenge/” + 临时文本 + “/”)
设置协议头 ()
http.SetContentType (“application/x-www-form-urlencoded; charset=UTF-8”)
http.SetCookie (user.cookies)
http.Send (postdata)
临时cookies = http.GetAllResponseCookies ()
user.cookies = 网页_Cookie合并更新 (user.cookies, 临时cookies)
返回文本 = http.GetResponseTextUtf8ToAnsi () ' 输出 返回文本
输出调试文本 (返回文本)
.如果 (寻找文本 (返回文本, “verify_email”, , 假) ≠ -1) ' //开始接邮箱验证码
user.uid = 文本_取中间 (返回文本, “user_id” + #引号 + “: ”, “,”)
调试输出 (user.uid)
.如果 (邮箱验证 (临时文本))
返回 (真)
.否则
返回 (假)
.如果结束
.否则
user.错误文本 = “邮箱验证错误”
返回 (假)
.如果结束
.默认
返回 (假)
.判断结束
返回 (假)
.默认
返回 (假)
.判断结束
' //正常成功登陆处理的情况