本系列文章于2017年中用最新信息和新示例重写。
Twitter是最大的社交网络之一,多年来一直通过REST API为开发人员提供对其平台的访问权限。 他们还为对实时数据感兴趣的开发人员提供了流式API。 要访问这些API中的任何一个,您首先需要在此处注册一个应用程序。 确保您已阅读《 开发人员协议》 ,否则,如果您创建违反其条款的应用程序,将会被拒之门外。
注册应用程序后,您将能够生成应用程序访问Twitter数据所需的以下密钥。
- 使用者密钥(也称为API密钥)
- 消费者秘密
- 访问令牌密钥
- 访问令牌机密
Twitter API使用JSON格式与第三方应用程序进行通信。 因此,您可以使用任何支持JSON的编程语言来开发应用程序。 在此示例中,我们将使用NodeJS。
首先,git clone json-examples项目 ,安装依赖项并创建一个.env文件。
git@github.com:sitepoint-editors/json-examples.git
cd json-examples
npm install
touch .env
在.env文件中,您需要填充以下设置:
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN_KEY=
TWITTER_ACCESS_TOKEN_SECRET=
接下来,让我们看一下twitter-json-example.js
代码。
require('dotenv').config();
var Twitter = require('twitter');
const CONSUMER_KEY = 'TWITTER_CONSUMER_KEY';
const CONSUMER_SECRET = 'TWITTER_CONSUMER_SECRET';
const ACCESS_TOKEN_KEY = 'TWITTER_ACCESS_TOKEN_KEY';
const ACCESS_TOKEN_SECRET = 'TWITTER_ACCESS_TOKEN_SECRET';
// Validate Twitter API Keys
const keys = [CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET ]
keys.forEach((key) => {
if(!process.env[key])
throw new Error(key + ' has not been set!');
});
var client = new Twitter({
consumer_key: process.env[CONSUMER_KEY],
consumer_secret: process.env[CONSUMER_SECRET],
access_token_key: process.env[ACCESS_TOKEN_KEY],
access_token_secret: process.env[ACCESS_TOKEN_SECRET]
});
var params = {screen_name: 'sitepointJS', count: 3};
client.get('statuses/user_timeline', params, function(error, tweets, response) {
if (!error) {
console.log(JSON.stringify(tweets));
}
});
为了轻松使用Twitter REST API,我们寻求了一个名为Twitter的npm软件包的帮助。 首先,我们验证是否已定义所有API密钥。 然后,我们在path statuses/user_timeline
上执行查询。 要了解有关Twitter API路径的更多信息,请查看Apigee Twitter控制台 。
要执行代码,只需执行以下操作:
node twitter-json-example.js
等待几秒钟,您将很快收到JSON输出。 下面,我演示了部分结果:
[{
"created_at": "Thu Jun 22 21:00:00 +0000 2017",
"id": 877994604561387500,
"id_str": "877994604561387520",
"text": "Creating a Grocery List Manager Using Angular, Part 1: Add & Display Items https://t.co/xFox78juL1 #Angular",
"truncated": false,
"entities": {
"hashtags": [{
"text": "Angular",
"indices": [103, 111]
}],
"symbols": [],
"user_mentions": [],
"urls": [{
"url": "https://t.co/xFox78juL1",
"expanded_url": "http://buff.ly/2sr60pf",
"display_url": "buff.ly/2sr60pf",
"indices": [79, 102]
}]
},
"source": "<a href=\"http://bufferapp.com\" rel=\"nofollow\">Buffer</a>",
"user": {
"id": 772682964,
"id_str": "772682964",
"name": "SitePoint JavaScript",
"screen_name": "SitePointJS",
"location": "Melbourne, Australia",
"description": "Keep up with JavaScript tutorials, tips, tricks and articles at SitePoint.",
"url": "http://t.co/cCH13gqeUK",
"entities": {
"url": {
"urls": [{
"url": "http://t.co/cCH13gqeUK",
"expanded_url": "http://sitepoint.com/javascript",
"display_url": "sitepoint.com/javascript",
"indices": [0, 22]
}]
},
"description": {
"urls": []
}
},
"protected": false,
"followers_count": 2145,
"friends_count": 18,
"listed_count": 328,
"created_at": "Wed Aug 22 02:06:33 +0000 2012",
"favourites_count": 57,
"utc_offset": 43200,
"time_zone": "Wellington",
},
}]
以下是本系列的其他示例:
- 颜色JSON示例
- Google Maps JSON示例
- YouTube JSON示例
- GeoIP JSON示例
- WordPress JSON示例
- 数据库JSON示例
- 本地REST JSON示例
- 测试数据JSON示例
- JSON服务器示例