Эта серия статей была переписана в середине 2017 года с актуальной информацией и свежими примерами.
Twitter, одна из крупнейших социальных сетей, уже много лет предоставляет разработчикам доступ к своей платформе через REST API. У них также есть потоковый API для разработчиков, заинтересованных в данных в реальном времени. Чтобы получить доступ к любому из этих API, вам необходимо сначала зарегистрировать приложение здесь . Убедитесь, что вы прочитали Соглашение с разработчиком , иначе вы будете заблокированы, если создадите приложение, нарушающее их условия.
После регистрации приложения вы сможете сгенерировать следующие ключи, необходимые для доступа вашего приложения к данным Twitter.
- ключ потребителя (также известный как ключ API)
- потребительский секрет
- ключ токена доступа
- секретный токен доступа
API Twitter использует формат JSON для взаимодействия со сторонними приложениями. Следовательно, вы можете использовать любой язык программирования с поддержкой JSON для разработки вашего приложения. В этом примере мы будем использовать NodeJS.
Сначала выполните клонирование проекта json-examples , установите зависимости и создайте файл .env.
[email protected]: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));
}
});
Чтобы легко работать с API REST для Twitter, мы заручились помощью пакета npm под названием Twitter . Сначала мы проверяем, что все ключи API были определены. Затем мы выполняем запрос по пути statuses/user_timeline
Чтобы узнать больше о путях API Twitter, проверьте консоль 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",
},
}]
Вот другие примеры из этой серии: