追踪多个ID时Twitter返回401错误,Node.js模块遇问题
解决Twitter Node.js模块追踪多个ID时的401错误
我之前也踩过这个坑!问题其实出在Twitter API对follow参数的格式要求上——它不支持数组类型,必须把多个用户ID转换成逗号分隔的字符串才行。
为什么单个ID能正常运行?
当你传入单个ID时,Twitter Node.js模块会自动把这个值转换成API能识别的字符串格式,所以请求能正常通过。但当你传入数组时,模块并没有帮你做格式转换,导致请求参数不符合API要求,进而触发了401状态码(这里API返回401确实有点误导人,本质上是参数格式错误,不是权限问题)。
修正后的代码
把数组改成逗号分隔的字符串就可以解决问题:
var stream = Twitter.stream('statuses/filter', { follow : '713445685429932032,23424' }); stream.on('tweet', function (tweet, err) { console.log(tweet); })
补充说明
Twitter官方的statuses/filter接口文档明确规定,follow参数需要是逗号分隔的用户ID字符串,而非数组。哪怕你要追踪5000个ID,也得把所有ID用逗号拼接成一个字符串传入,而不是用数组。
内容的提问来源于stack exchange,提问作者anaam nizami
相关产品推荐
相关产品推荐

