重点:非必须不要去关联什么推特,因为推特很坑,不花钱升级开发者账户,只能免费使用(发布、删除、查自己)这三个接口;一个月100美金,虽然大部分功能都可用,但是请求速率卡的死死的,要想随心所欲的调用推特官方的api,那就要每个月花费5000美金!当然,我们这个产品量级比较小,用户暂时还达不到那么多,所以排队调用还是能接受的!
一、注册推特开发者账号
链接:https://developer.twitter.com/
注册完了之后呢,要创建一个app来关联到自己的开发者账号,有一个地方很重要,看下图:
红色框部分,如果你关联推特涉及到写的权限,就一定要设置一下这个,不设置读写权限,调用不了接口的。然后点击Edit(编辑)能获取到Client ID、Client Secret,这两个字段如果你选择使用Oauth2.0调用的话用得上,如果使用oAuth1.0a应该是用不上,但是保留一份最好!
二、记apikey
创建完开发者账号绑定完app这一套流程下来,你瞅瞅,你现在已知的key都有哪些?
上图的应该是都有了,如果你没有,说明你流程上可能忽略哪一个环节
三、调接口
有了上面获取到的那个apiKey,接下来就可以用程序调接口了
先执行一下:npm i axios axios-oauth-1.0a 安装一下依赖
然后直接上代码
const axios = require('axios');
const addOAuthInterceptor = require('axios-oauth-1.0a').default;
// 创建一个将被签名的客户端
const client = axios.create();
// 指定OAuth选项
const options = {
algorithm: 'HMAC-SHA1',
key: '*********************', //Consumer Key
secret: '*****************************************', //ConsumerSecret
token: '*************************************************', //Access Token
tokenSecret: '*****************************************' //Access Token Secret
};
// 添加拦截器以签署请求
addOAuthInterceptor(client, options);
// 发起带有OAuth签名的GET请求,我这个是按时间线查询用户发布的推文,'174683507*********'这个是你要查的对方的推特的id,这个id怎么获取,前端授权之后会传给你,当然也有专门查id的接口
client.get('https://api.twitter.com/2/users/'+'174683507*********'+'/tweets')
.then(response => {
console.log(response.data.data);
})
.catch(error => {
console.error(error);
});
module.exports = {
client,
options
};
上方执行后的代码就是下面这个样子:
因为我只发了一条推文,所以只获得了一条数据,这个是个分页查询,每页最多好像是10条!
四、结语
以上就是有关获取推文的方法,其实含金量不是很高,就是坑比较多,希望对你有帮助!