ookamiinc / firebase-functions-twitter-sample

Firebase の Cloud Functions で Twitter API と連携するサンプルです。

Home Page:https://qiita.com/tanakaoriginal/items/4cbbaa47ec752c319296

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

Cloud Functions for Firebase で Twitter API と連携するサンプル

特定のスクリーンネームのユーザーがお気にいりしたツイートリストを取得する API を Cloud Functions で提供します。

プロジェクトのセットアップ

  1. Firebase Tools のインストール

    $ npm install -g firebase-tools
    

    もしうまくいかない時は、npm パーミッションの変更 を試してみてください。

  2. Firebase コンソールでプロジェクトを作成

    Firebase Console でプロジェクトを作成します。

  3. Firebase プロジェクトの料金プランを有料プランに変更

    Cloud Functions から外部 API へアクセスするため、このプロジェクトの料金プランを Flame または Blaze に設定する必要があります。

    無料プランの Spark の場合は、デプロイ後に外部サイトへアクセスできないエラーが API レスポンスとして返却されます。

    参考:Firebase の料金体系

  4. リポジトリをクローン

    このリポジトリをクローンもしくはダウンロードします。

    $ git clone https://github.com/tanakaoriginal/firebase-functions-twitter-sample.git
    $ cd firebase-functions-twitter-sample
    
  5. Firebase CLI で使用するプロジェクトを選択

    以下のコマンドで Firebase コンソールで使用したプロジェクトを選択します。

    $ firebase use --add
    
  6. Firebase プロジェクトの環境変数を設定

    Twitter API のクレデンシャルを Twitter Application Management から取得して設定します。

    $ firebase functions:config:set \
    twitter.credential.consumer_key="YOUR_CONSUMER_KEY" \
    twitter.credential.consumer_secret="YOUR_CONSUMER_SECRET" \
    twitter.credential.access_token_key="YOUR_ACCESS_TOKEY_KEY" \
    twitter.credential.access_token_secret="YOUR_ACCESS_TOKEY_SECRET"
    

    Tweet 取得用の設定も追加します。

    $ firebase functions:config:set \
    twitter.fav_list.screen_name="noradio" \
    twitter.fav_list.count_limit=10
    
  7. 依存関係のインストール

    $ npm install
    
  8. ローカル環境で API 動作を確認

    下記コマンド実行後に確認ようの API エンドポイント URL が表示されます。

    $ npm serve
    
  9. Cloud Functions で API 動作を確認

    ローカルテストと同様にコマンド実行後に確認用の URL が表示されます。

    $ npm deploy
    

自動テスト

ユニットテスト

下記コマンドを functions ディレクトリで実行します。

$ npm test

モックされている処理

  • Twitter API リクエスト処理(APIへのリクエストは行わずにテスト用の Tweet リストが返されます)
  • Firebase の環境設定(仮の設定値で処理が実行されます)

About

Firebase の Cloud Functions で Twitter API と連携するサンプルです。

https://qiita.com/tanakaoriginal/items/4cbbaa47ec752c319296

License:MIT License


Languages

Language:JavaScript 100.0%