はじめに
後輩がTwitterAPIの話してたら気になったので、叩いてみることにした。
Twitter Developer
概要
- Twitterアカウントがあれば自分用のAPIアクセスポイントを作って、TwitterAPIを叩ける
準備
Twitterアカウント
アカウント作成
※アカウント保有者は飛ばす
TwitterAPIアクセスポイント作成
-
TwitterDeveloperにログイン
-
右上ユーザー名プルダウンからAppsへ飛ぶ
テストなので↓こんな感じの内容↓で登録
項目 | 値 | 説明 |
---|---|---|
App Name | test | 自分の作るアプリの名前 |
Description | just for test | アプリの説明 |
Website URL | http://test.com | アプリのURL |
Sign in with Twitter | enabled | |
Callback URL | http://localhost:3000 | サーバーURL。本番サーバー立てたら追加 |
Terms of service URL | ||
Privacy policy URL | ||
Organization name | ||
Organization website URL | ||
App usage | test test test test test test test test test test test test test test test test test test test test test test test test test test | 詳細なアプリ説明 |
下のCreate
を押下
4.作成できたらKeys and tokens
タブのGenrate key
を押下
重要
↓こんな画面↓が出てくるので、Access token
とAccess token secret
をコピペ&メモして保存
使用するのは4つ
- Api key
- Api secret key
- Access token
- Access token secret
Node.js
###Node.jsインストール
npmも使えるようにしておく
Node.jsダウンロードサイト
使用方法
- APIレファレンスから使いたいAPIを探す。
今回はトレンドを見ることにした
HttpRequest飛ばすだけでよさそう
API Reference contents
GET trends/available GET trends/closest
- 設定はnpmのtwitterパッケージが簡単そう
var Twitter = require('twitter');
var client = new Twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});
var params = {screen_name: 'nodejs'};
client.get('statuses/user_timeline', params, function(error, tweets, response) {
if (!error) {
console.log(tweets);
}
});
サーバーを立ててみる
仕様
サーバーのURLを叩いたらTwitterのトレンド結果がとりあえず画面いっぱいに出る。
ソースコード
package.json
{
"name": "twitter_api_test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node ./index.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"twitter": "^1.7.1"
}
}
index.js
// server settings
const express = require("express")
const server = express();
const port = 3000
// twitter settings
const Twitter = require('twitter');
// さっき作ったAPIの設定
const API_KEY = "AAAAAAAAAA"
const API_SECRET_KEY = "BBBBBBBBBB"
const ACCESS_TOKEN = "CCCCCCCCCC"
const ACCESS_TOKEN_SECRET = "DDDDDDDDDD"
const twitter = new Twitter({
consumer_key: API_KEY,
consumer_secret: API_SECRET_KEY,
access_token_key: ACCESS_TOKEN,
access_token_secret: ACCESS_TOKEN_SECRET,
});
// routes
server.get("/", function (req, res, next) {
res.send("server is up")
});
server.get("/trends", function (req, res, next) {
// ここでTwitterAPIを叩く
twitter.get('trends/available', function (error, result, response) {
if (error) {
res.send(error)
} else {
res.send(result); // TwitterAPIの結果をそのまま返す
}
});
})
server.listen(port, function () {
console.log('Listening on port ' + port)
});