写了一个自动转发微博的bot

其实算是看到微博树洞微信树洞一类的东西都挺火的,于是动手写了一个。
也是因为微博的粉丝服务平台面向所有用户开放了,所以可以通过下发私信的方式去执行相应的操作:发微博在正文中 @平台帐号,给平台帐号私信指定的指令(比如uid中的某几位的运算结果),平台帐号转发微博。

首先是使用微博API的 statuses/mentions 接口,get接收到的最近的@主体帐号的微博(access_token直接给固定的粉丝服务平台的token即可),为了避免干扰可以筛选出原创微博;
从最新的微博id往前与sender_id进行比对,直到找到符合的微博或达到某个设定的阈值;
比较当前时间与sender_id上一次使用这个功能的时间(存在本地csv文件里),判断时间间隔是否超过阈值,以免滥用刷屏;
判断微博正文里是否有不希望出现的词或者链接中是否包含淘宝地址(直接用strstr()就够了;判断链接用 short_url/expand )等,视情况予以回复信息警告或拉黑;
使用 friendships/show 判断是否关注主体帐号,如果没有则提示关注后再使用(涨了不少粉..);
如果都没有问题的话,往 statuses/post post相应信息就好了,顺便把sender_id和微博id记录到csv文件里。

基本的流程就是这样,算是绕过了执行者给微博应用授权的这个过程,不过还是需要一定的人工干预(比如每天查看一次)以避免不当使用。不过最近微博APP似乎把 statuses/mentions 接口设置成只能返回授权用户的微博了(orz),想想办法还是能把这个问题给解决掉的,嗯~

Leave a Reply