はじめに
後輩が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
を押下
- 作成できたら
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パッケージが簡単そう
varTwitter=require('twitter');varclient=newTwitter({consumer_key:'',consumer_secret:'',access_token_key:'',access_token_secret:''});varparams={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 settingsconstexpress=require("express")constserver=express();constport=3000// twitter settingsconstTwitter=require('twitter');// さっき作ったAPIの設定constAPI_KEY="AAAAAAAAAA"constAPI_SECRET_KEY="BBBBBBBBBB"constACCESS_TOKEN="CCCCCCCCCC"constACCESS_TOKEN_SECRET="DDDDDDDDDD"consttwitter=newTwitter({consumer_key:API_KEY,consumer_secret:API_SECRET_KEY,access_token_key:ACCESS_TOKEN,access_token_secret:ACCESS_TOKEN_SECRET,});// routesserver.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)});