Tumblr APIからお気に入りポストを取得する
標題の通り、Tumblr API経由でデータを取得する際のメモ お気に入りデータを取得したい。
How to Use
GitHub - tumblr/tumblr.js: JavaScript client for the Tumblr APIを使用したところ、楽にclientを生成することが出来たため、使用することに
const util = require('util'); const tumblr = require('tumblr.js'); const createClient = (token, tokenSecret) => { return tumblr.createClient({ consumer_key: process.env.TUMBLR_CONSUMER_KEY, consumer_secret: process.env.TUMBLR_CONSUMER_SECRET, token: 'ZSLJV5JtLU6POto9vFWCXDQ5yfBiJiRszX7nyqnpEHoNo61hCC', token_secret: 'IDQ9FT0coMaAgFuGahjtDitzYMSbsV9BmvhWo6i18qJjyHSOWt' }); }; const fetchLikes = async (client, params) => { // TODO: params validation const userLikes = util.promisify(client.userLikes); const res = await userLikes({ limit: 100 }); return res; }; module.exports = { createClient, fetchLikes
Test
'use strict'; const tumblrApi = require('../../apis/tumblr'); describe('api/tumblrのテスト', () => { test('likeのテスト', async () => { // token,tokenSecretは適宜書き換え const token = '下記console/callsから取得したtoken'; const tokenSecret = '下記console/callsから取得したsecret token'; const res = await tumblrApi.fetchLikes( tumblrApi.createClient(token, tokenSecret), { limit: 100 } ); console.log(res); expect(res).not.toBeNull(); }); });
OAuth1.0はhttps://github.com/jaredhanson/passport-tumblrを実装している。 token,tokenn_secretをテストコードで取得することができないので、以下のUIから発行している。 api.tumblr.com
うーーん。ただ、token,secretToken直書きもいかがなモノだし。なんかうまい方法はないものか。。。
envを取得するために、dotennvをjestに読み込ませるのをお忘れなく
package.json
"jest": { "setupFiles": [ "dotenv/config" ] },