Статьи

Пример файла Twitter JSON

Эта серия статей была переписана в середине 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",
  },
}]

Вот другие примеры из этой серии: