承認されたらTwitter投稿 - 広報担当者必見のkintoneカスタマイズ -
はじめに
皆さん、Twitterを使っていますか?
私は最近始めました!
企業でTwitterを利用する場合は承認機能やツイート日時の指定機能が欲しいですよね。
今回はkintoneとAWS Lambdaを使って、kintoneに登録された内容をTwitterへ投稿するカスタマイズを紹介します!
運用イメージ
- 社員がTwitterに投稿する内容、投稿したい日時をkintoneに登録
- 上司が内容を確認して、承認/却下
- 承認済かつ投稿したい日時が過去のデータをツイート(画像付きツイート、公式引用ツイートが可能)
投稿日時の指定機能のためにAWS Lambdaを利用します。
また、Lambda関数の作成にNode.js環境が必要ですのでご注意ください。
大きな処理の流れは以下のとおりです。
Twitter APIの利用には申請が必要です(2019/5現在)。詳細は Twitter社の公式情報 を確認してください。
ではさっそく準備に取り掛かりましょう。
kintoneの設定
kintoneアプリの作成
フィールド名 | フィールドタイプ | フィールドコード | 備考 |
---|---|---|---|
ツイート日時 | 日時 | tweetDate | 必須項目にする |
ツイート内容 | 文字列(複数行) | tweetBody | 必須項目にする |
画像ファイル | 添付ファイル | imageFile | |
ツイートURL | リンク(Webサイトのアドレス) | tweetUrl | ツイート後、ツイート個別のURLを自動セット |
APIトークンの発行
「アプリの設定 > APIトークン」で、レコードの閲覧、レコード編集が可能なAPIトークンを発行します。
ツイート後にステータスを更新し、ツイートURLを登録するのでレコード編集権限が必要です。
プロセス管理
「アプリの設定 > プロセス管理」で、以下のとおり設定します。
「ツイート待ち」ステータスでは作業者を設定しないでください。
設定するとAPIトークンによるステータス更新ができません。(詳細は
1件のレコードのステータスを更新するを確認してください)
Twitterの設定
Twitterアカウントの作成
下記URLから、Twitterアカウントを作成します。
Twitterアカウントを取得済みの方はログインしてください。
https://twitter.com/
申請
Twitter APIの利用には申請が必要です(2019/5現在)。
Twitter APIの利用が初めての方は、下記URLから申請してください。
詳細はTwitter社の公式情報を確認してください。
https://developer.twitter.com/en/portal/dashboard
アプリケーションの登録
次の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」をメモします。
この情報は一度しか表示されないので、忘れた場合は再生成が必要になります。
Lambda関数の実行ファイル作成
Node.jsをインストールした環境での作業になります。
以下のサンプルコードをファイル名「index.js」で保存します。
|
|
以下のコマンドを実行して、モジュールのインストール、ZIPファイル(Lambda関数の実行ファイル)を作成します。
ZIPコマンドでエラーが発生した場合は、階層にファイル「index.js」とディレクトリ「node_modules」が存在するか確認してください。
|
|
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)」を選択します。
EventBridgeの使用は、イベントの数に基づいて課金されるので注意してください。
詳細については、 AmazonEventBridgeの料金 ページを参照してください。 -
「ルール名」、「ルールの説明」、「スケジュール式」には適当な値を入力します。
-
関数の設定に戻り、「kintone-to-Twitter」をクリックして、関数コードから「アクション」を開きます。
-
「.zipファイルをアップロード」から、先ほど作成したkintone-to-Twitter.zipをアップロードします。
-
「ランタイム設定」で「ハンドラー」にindex.handlerが選択されていない場合は、編集ボタンを押して選択します。
-
「基本設定」の「編集」ボタンを押し、「タイムアウト」と「実行ロール」を編集します。
-
「タイムアウト」には30秒を設定します。
-
「実行ロール」は「既存のロールを使用する」を選択し、「既存のロール」のドロップダウンから先ほど作成したロールを設定します。
-
最後に、環境変数を追加します。
-
環境変数の設定はindex.jsの 環境変数の設定の部分を参考に、「process.env.」に続く大文字部分を「キー」に入れ、それぞれ対応する値を設定します。
環境変数の設定
|
|
動作確認
kintoneにデータを登録して、プロセス管理のステータスを「ツイート待ち」まで進めましょう。
ツイート日時経過後にLambdaが実行されたタイミングでツイートされました!
kintoneのデータを確認すると、ステータスが進み、ツイートURLに値がセットされています。
おわりに
ばっちりツイートされましたね!
これなら安心してTwitter運用できそうです。
設定が少したいへんですがぜひチャレンジしてみてください。
このTipsは、2017年4月版kintoneで動作を確認しています。