TimeTree APIを使ってみる
「TimeTree Developer Platform」の記載内容を参考に進めます。
はじめに
- TimeTreeのアカウントを作成済みであることを前提とします。
- 検証の際に使用したOSはWindows 10です。
- Nodeはインストール済みです。
パーソナルアクセストークンの発行
「パーソナルアクセストークンの発行ページ」にて、パーソナルアクセストークンを発行します。
- ページを開き、「トークンの作成」ボタンをクリックします。
- 「トークン名」に適切なトークン名を入力し、「TimeTree開発者ガイドラインに同意します。」にチェックを入れて「作成」ボタンをクリックします。
- アクセストークンが発行されるので、内容をコピーし保存しておきます。
アクセストークンを用いたCurlでの確認
取得したパーソナルアクセストークンを使用して、Curlにて動作確認を行います。
以下の内容のbatファイルを作成し、ダブルクリックして実行します。({accessToken}
は取得したアクセストークンで置き換えてください。)
@echo off
set accessToken="{accessToken}"set responseFileName="GetUer-Response.json"
rem 日本語化
chcp 65001
curl -X GET^
"https://timetreeapis.com/user"^
-H"Accept: application/vnd.timetree.v1+json"^
-H"Authorization: Bearer %accessToken%"^
-o"%responseFileName%"
pause
成功すると以下の内容のGetUser-Response.json
が作成されます。(***
の箇所には適切なデータが入ってきます。)
{"data":{"id":"***","type":"user","attributes":{"name":"***","description":"***","image_url":null}}}
アクセストークンが使用可能であることが確認できたので、以降、Node.jsによる実装を進めます。
Node.jsによる実装
適当なフォルダを作成し、コマンドプロンプトで作成したフォルダに移動します。
以下のコマンドを実行し、初期化します。
npm init
いろいろと聞かれますが、Enter
キーを連打します。
次に、同一フォルダにてExpress
、ejs
、config
、request
をインストールします。
npm install express
npm install ejs
npm install config
npm install request
以下のようなpackage.json
が作成されます。(scripts
の内容を手動で修正しています。)
{"name":"{name}","version":"1.0.0","description":"","main":"index.js","scripts":{"start":"node app.js"},"author":"","license":"ISC","dependencies":{"config":"^3.3.1","ejs":"^3.1.2","express":"^4.17.1","request":"^2.88.2"}}
以下の構成になるように、app.js
ファイル、timetreeModule.js
ファイル、views
フォルダ、index.ejs
ファイル、config
フォルダ、default.json
ファイルをそれぞれ作成します。
{作成したフォルダ}
┣ node_modules
┃ ┗ …
┣ config
┃ ┗ default.json
┣ views
┃ ┗ index.ejs
┣ app.js
┣ package-lock.json
┣ package.json
┗ timetreeModule.js
それぞれ以下のような内容とします。
varexpress=require('express');varapp=express();vartimeTreeModule=require('./timetreeModule');app.set("view engine","ejs");app.get('/',(req,res)=>{timeTreeModule.getUser(function(result){res.render("index",{data:JSON.parse(result).data});});});varport=process.env.PORT||3000;app.listen(port,()=>{console.log('Start server port:3000');})
varconf=require('config');varrequest=require('request');// ユーザの取得exports.getUser=function(callback){varheaders={'Accept':'application/vnd.timetree.v1+json','Authorization':'Bearer '+conf.accessToken}varoptions={url:'https://timetreeapis.com/user',method:'GET',headers:headers}request(options,function(error,response,body){callback(body);})}
<!DOCTYPE html><html><head><metacharset="utf-8"/><title>Page Title</title></head><body><h1>確認ページ</h1><!-- コードから渡されたデータを表示--><table><tr><th>名前</th><td><%=data.attributes.name%></td></tr><tr><th>説明</th><td><%=data.attributes.description%></td></tr></table></body></html>
{"accessToken":"{取得したアクセストークン}"}
作成後、コマンドプロンプトにて以下のコマンドを実行し、起動します。
npm start
ブラウザでhttp://localhost:3000
にアクセスします。ユーザ名と説明が表示されることを確認します。
最後に
説明不足箇所が多々あるため、時間があれば追記します。
また、今回はユーザ情報を取得するAPIを使用するにとどまったため、他のAPIを使用する例についても時間があれば追記します。