WNJXYK
Thanks to the cruel world.
WNJXYKのBlog
微博HTML5版 API分析
微博HTML5版 API分析

抓包微博HTML5版本的API之后,写下如下总结,所有操作均会显示来源为微博HTML5版。微博HTML5版地址:https://m.weibo.cn

登陆

访问网址https://passport.weibo.cn/signin/login?entry=mweibo&res=wel&wm=3349&r=https%3A%2F%2Fm.weibo.cn%2F进行用户登陆操作,如果登陆成功会根据网址中的r字段自动跳转到目标网址,这里的目标网址是https://m.weibo.cn/

此时,在跳转完成的网页中获取所有Cookie就可以保存用户的登陆状态。

每次用户登陆之后,还需要向Weibo获取一个st字段,是本次登陆之后,每一个操作的验证值。

只需要将用户的Cookie携带,并向https://m.weibo.cn/api/config发出Get请求即可,回返回一个JSON数据,表示本次请求登陆状态。

{
    "data":{
        "login":true,
        "st":"验证值",
        "uid":"用户ID"
    },
    "ok":1
}

我们只需要获取其中有用的信息即可:data->logindata->stdata->uid

需要注意的是,这个st字段的验证值并不是一直有效的。也就是说,每隔一段时间,我们需要向服务器更新的st字段的有效值。

关注与不再关注

关注与解除关注,只需要向目标地址进行Post即可,Post附带的数据格为uidst
关注地址:https://m.weibo.cn/api/friendships/create
解除关注地址:https://m.weibo.cn/api/friendships/destory

返回数据如下,

{"data":
    {用户信息},
    "ok":1
}

发表微博

向指定地址https://m.weibo.cn/api/statuses/update 发出带参数Post请求,参数为contentst,分别表示发布内容与操作验证值。
如果要发送图片微博,只需要增加一个picId的网址数组,表示发布图片的信息。

返回一个带有发布微博信息的JSON。

{
    "ok": 1,
    "data": {
        "created_at": "Sat Sep 08 20:05:10 +0800 2018",
        "id": "4282069171851588", //微博ID
        "mid": "4282069171851588",
        "can_edit": true,
        "text": "Test ​", // 内容
        "textLength": 4, // 长度
        "source": "微博 HTML5 版", //来源
        "pic_ids": [], // 图片列表
        ......
        "user": {用户信息},
        ......
    }
}

上传图片

https://m.weibo.cn/api/statuses/uploadPic发出符合参数的Post请求,参数内容为:

type: json,
图片文件 {类型(pic)、名称随、格式(image/jpeg、内容}
st: 操作验证值

将会返回上传图片的唯一ID与上传图片的各种清晰度版本地址:

{
    "pic_id":"005ZJU11ly1fuwq69vjkwj30fk0fk3yy",
    "thumbnail_pic":"http:\/\/wx2.sinaimg.cn\/thumbnail\/005ZJU11ly1fuwq69vjkwj30fk0fk3yy.jpg",
    "bmiddle_pic":"http:\/\/wx2.sinaimg.cn\/bmiddle\/005ZJU11ly1fuwq69vjkwj30fk0fk3yy.jpg",
    "original_pic":"http:\/\/wx2.sinaimg.cn\/large\/005ZJU11ly1fuwq69vjkwj30fk0fk3yy.jpg"
}

点赞

https://m.weibo.cn/api/attitudes/create,发送Post请求,参数内容为:st, id, attitude
id为文章ID,attitude为执行操作,其中attitude=heart为点赞操作。

将会返回一个JSON,其中msg字段为操作是否成功。

其他

其他API均可以通过观察网页发出的数据包得到,基本逻辑与之前的API相同。

赞赏
https://secure.gravatar.com/avatar/f83b57c055136369e9feba5d6671d6b5?s=256&r=g

WNJXYK

文章作者

一个蒟蒻

推荐文章

发表评论

textsms
account_circle
email

WNJXYKのBlog

微博HTML5版 API分析
抓包微博HTML5版本的API之后,写下如下总结,所有操作均会显示来源为微博HTML5版。微博HTML5版地址:https://m.weibo.cn 登陆 访问网址https://passport.weibo.cn/signin/login?entry=m…
扫描二维码继续阅读
2018-09-06
<--! http2https -->