新浪微博API使用user_timeline获取用户原创微博
自己的微博 http://t.yourtion.com 已经荒废好一段时间了,前段时间把Pagecookery升级到0.9.8,支持了新浪微博的同步导入和发布,但是一直没有去弄,趁着有时间,稍微测试和改进了一下他的新浪微博同步部分,只同步原创微博部分,和大家交流一下,大家可以举一反三自己测试,更加熟悉新浪微博的API。
Pagecookery的微博同步是通过Oauth
认证,之后使用json
进行数据的抓取,对于抓取用户微博使用user_timeline
的接口,也就是 https://api.weibo.com/2/statuses/user_timeline.json 。我看来一下接口文档,请求参数里面有一个:feature
,是用来过滤请求的类型(过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。)由于默认是0,所以会抓取全部微博。
改造方法,在请求json
的时候带上feature
参数,可以使用 https://api.weibo.com/2/statuses/user_timeline.json?feature=1 。但是我这样改造没有成功,因为他的抓取依赖oauth->get的类,我在类中加入参数$param['feature']=1;
这样抓取时就可以过滤掉非原创的成分。
关于新浪API的研究还是皮毛阶段,希望各位不要见笑,大家多多交流,共同进步。
对于Oauth还有疑问的可以看看我之前的:《新浪微博OAuth认证详解及验证数据储存》、《新浪微博API使用OAuth认证发布微博实例》
关于user_timeline请求参数如下表:
source | false | string | 采用OAuth授权方式不需要此参数,其他授权方式为必填参数,数值为应用的AppKey。 |
access_token | false | string | 采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。 |
uid | false | int64 | 需要查询的用户ID。 |
screen_name | false | string | 需要查询的用户昵称。 |
since_id | false | int64 | 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。 |
max_id | false | int64 | 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。 |
count | false | int | 单页返回的记录条数,默认为50。 |
page | false | int | 返回结果的页码,默认为1。 |
base_app | false | int | 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。 |
feature | false | int | 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。 |
trim_user | false | int | 返回值中user信息开关,0:返回完整的user信息、1:user字段仅返回user_id,默认为0。 |
原文链接:https://blog.yourtion.com/sina-api-user_timeline-original.html