(著者:サイボウズ 竹内 能彦)
はじめに
皆さん、Twitter 使ってますか?私は最近始めました・・・v^^v
企業で Twitter を利用する場合は承認機能やツイート日時の指定機能が欲しいですよね。
今回は kintone とAWS Lambda を使って、kintone に登録された内容を Twitter に投稿するカスタマイズをご紹介します!
運用イメージ
- 社員が Twitter に投稿する内容、投稿したい日時を kintone に登録
- 上司が内容を確認して、承認/却下
- 承認済かつ投稿したい日時が過去のデータをツイート(画像付きツイート、公式引用ツイートが可能)
投稿日時の指定機能のために AWS Lambda を利用します。
また、Lambda 関数の作成に Node.js 環境が必要ですのでご注意ください。
大きな処理の流れは以下の通りです。
では早速準備に取り掛かりましょう。
1. kintone 設定
kintone アプリの作成
フィールド名 |
フィールドタイプ | フィールドコード | 備考 |
ツイート日時 | 日時 | tweetDate | 必須項目にする |
ツイート内容 | 文字列(複数行) | tweetBody | 必須項目にする |
画像ファイル | 添付ファイル | imageFile | |
ツイートURL | リンク(Webサイトのアドレス) | tweetUrl | ※ツイート後、ツイート個別のURLを自動セット |
APIトークンの発行
「アプリの設定 > APIトークン」で、レコードの閲覧、レコード編集が可能なAPIトークンを発行します。
ツイート後にステータスを更新し、ツイートURLを登録するのでレコード編集権限が必要です。
プロセス管理
「アプリの設定 > プロセス管理」で、以下の通り設定します。
「ツイート待ち」ステータスでは作業者を設定しないでください。設定するとAPIトークンによるステータス更新ができません。(詳細はこちら)
2. Twitter 設定
Twitter アカウントの作成
下記URLから、Twitter アカウントを作成します。Twitter アカウントを取得済みの方はログインしてください。
https://twitter.com/
申請
Twitter APIの利用には申請が必要です(2019/5現在)。
Twitter APIの利用が初めての方は、下記URLから申請を行ってください。
※詳細はTwitter社の公式情報をご確認ください。
https://developer.twitter.com/en/apply-for-access
アプリケーションの登録
下記URLにアクセスして新しいアプリケーションを作成します。
https://developer.twitter.com/en/portal/dashboard
- 左サイドメニューから「Project & Apps」の「Overview」を選択します。
- 「Standalone Apps」の 「Create App」 からアプリを作成します。
- アプリ名を入力し「Complete」 をクリックすると、画面に 「API key」「API secret key」「Bearer token」が表示されます。
「API key」と「API secret key」は実装に必要となるので、手元にコピーしておいてください。 - 「App Settings」 をクリックすると設定画面に遷移します。
画面上部の「Key and tokens」を開き、「Access token & secret」の横にある「Generate」ボタンを押します。
生成された「Access token」と「Access token secret」をメモします。この情報は一度しか表示されないので、忘れた場合は再生成が必要になります。
3. Lambda 関数の実行ファイル作成
Node.js をインストールした環境での作業になります。
以下のサンプルコードをファイル名「index.js」で保存します。
以下のコマンドを実行して、モジュールのインストール、ZIPファイル(Lambda 関数の実行ファイル)を作成します。
ZIPコマンドでエラーが発生した場合は、階層にファイル「index.js」とディレクトリ「node_modules」が存在するか確認してください。
4. AWS 設定
AWS アカウントの作成
下記URLを参考に AWS アカウントと管理者ユーザーを作成します。AWS アカウントを取得済みの方はログインしてください。
https://aws.amazon.com/jp/register-flow/
実行ロールの作成
下記URLを参考に Lambda を実行するロールを作成します。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-intro-execution-role.html
今回はロール名は「AWSLambdaExecute(例)」で作成しました。
Lambda の設定
新規関数を作成します。
設計図はブランク関数を選択します。
「関数名」は適当な値を設定します。
「ランタイム」は Node.js 12.x を選択します。
「デフォルトの実行ロールの変更」から「既存のロールを使用する」を選択し、先ほど作成したロールを設定します。
関数を作成したら、「トリガーの追加」をクリックします。
ドロップダウンから、トリガーとして「 EventBridge(CloudWatch Events)」 を選択します。
「ルール名」、「ルールの説明」、「スケジュール式」には適当な値を入力します。
関数の設定に戻り、「kintone-to-Twitter」 をクリックして、関数コードから「アクション」を開きます。
「.zipファイルをアップロード」から、先ほど作成した kintone-to-twitter.zip をアップロードします。
「ランタイム設定」で「ハンドラ」に index.handler が選択されていない場合は、編集ボタンを押して選択します。
「基本設定」の「編集」ボタンを押し、「タイムアウト」と「実行ロール」を編集します。
「タイムアウト」には30秒を設定します。
「実行ロール」は「既存のロールを使用する」を選択し、「既存のロール」のドロップダウンから先ほど作成したロールを設定します。
最後に、環境変数を追加します。
index.js の次の部分を参考に、「process.env.」に続く大文字部分を「キー」に入れ、それぞれ対応する値を設定します。
環境変数の設定は次のようになります。
実行
kintone にデータを登録して、プロセス管理のステータスを「ツイート待ち」まで進めましょう。
ツイート日時経過後にLambdaが実行されたタイミングでツイートされました!
kintone のデータを確認すると、ステータスが進み、ツイートURLに値がセットされています。
終わりに
ばっちりツイートされましたね!これなら安心して Twitter 運用できそうです。
設定が少し大変ですが是非チャレンジしてみてください。
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。