Instagram安卓登录协议

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.错误文本 = “邮箱验证错误”
            返回 (假)
        .如果结束

    .默认
        返回 (假)
    .判断结束


    返回 (假)

.默认
    返回 (假)
.判断结束
' //正常成功登陆处理的情况


发表评论