cybozu developer network

カテゴリー内の他の記事

承認されたらTwitter投稿 - 広報担当者必見のkintoneカスタマイズ -

(著者:サイボウズ 竹内 能彦)

Index

はじめに

皆さん、Twitter 使ってますか?私は最近始めました・・・v^^v

企業で Twitter を利用する場合は承認機能やツイート日時の指定機能が欲しいですよね。
今回は kintone とAWS Lambda を使って、kintone に登録された内容を Twitter に投稿するカスタマイズをご紹介します!

運用イメージ

  1. 社員が Twitter に投稿する内容、投稿したい日時を kintone に登録
  2. 上司が内容を確認して、承認/却下
  3. 承認済かつ投稿したい日時が過去のデータをツイート(画像付きツイート、公式引用ツイートが可能)

投稿日時の指定機能のために AWS Lambda を利用します。
また、Lambda 関数の作成に Node.js 環境が必要ですのでご注意ください。

大きな処理の流れは以下の通りです。

overall.png

Twitter APIの利用には申請が必要です(2019/5現在)。詳細は Twitter社の公式情報をご確認ください。

では早速準備に取り掛かりましょう。

1. kintone 設定

kintone アプリの作成

フィールド名

フィールドタイプ フィールドコード 備考
ツイート日時 日時 tweetDate 必須項目にする
 ツイート内容 文字列(複数行) tweetBody 必須項目にする
画像ファイル 添付ファイル imageFile  
ツイートURL リンク(Webサイトのアドレス) tweetUrl  ※ツイート後、ツイート個別のURLを自動セット

APIトークンの発行

「アプリの設定 > APIトークン」で、レコードの閲覧、レコード編集が可能なAPIトークンを発行します。
ツイート後にステータスを更新し、ツイートURLを登録するのでレコード編集権限が必要です。

プロセス管理

「アプリの設定 > プロセス管理」で、以下の通り設定します。
「ツイート待ち」ステータスでは作業者を設定しないでください。設定するとAPIトークンによるステータス更新ができません。(詳細はこちら

kintoneProcess.png

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

  1. 左サイドメニューから「Project & Apps」の「Overview」を選択します。
  2. 「Standalone Apps」の 「Create App」 からアプリを作成します。
  3. アプリ名を入力し「Complete」 をクリックすると、画面に 「API key」「API secret key」「Bearer token」が表示されます。
    「API key」と「API secret key」は実装に必要となるので、手元にコピーしておいてください。
  4. 「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(例)」で作成しました。

awsIAM.png

Lambda の設定

新規関数を作成します。
設計図はブランク関数を選択します。

「関数名」は適当な値を設定します。
「ランタイム」は Node.js 12.x を選択します。
「デフォルトの実行ロールの変更」から「既存のロールを使用する」を選択し、先ほど作成したロールを設定します。

lambdaCreateFunction.png

関数を作成したら、「トリガーの追加」をクリックします。

lambdaAddTrigger.png

ドロップダウンから、トリガーとして「 EventBridge(CloudWatch Events)」 を選択します。
「ルール名」、「ルールの説明」、「スケジュール式」には適当な値を入力します。

EventBridge の使用は、イベントの数に基づいて課金されるので注意してください。詳細については、 AmazonEventBridgeの料金ページを参照してください。

lambdaTriggerSettings.png

関数の設定に戻り、「kintone-to-Twitter」 をクリックして、関数コードから「アクション」を開きます。

「.zipファイルをアップロード」から、先ほど作成した kintone-to-twitter.zip をアップロードします。

lambdaZipUpload.png

「ランタイム設定」で「ハンドラ」に index.handler が選択されていない場合は、編集ボタンを押して選択します。

lambdaRunntimeSettings.png

「基本設定」の「編集」ボタンを押し、「タイムアウト」と「実行ロール」を編集します。

lambdaBasicInfo.png

「タイムアウト」には30秒を設定します。
「実行ロール」は「既存のロールを使用する」を選択し、「既存のロール」のドロップダウンから先ほど作成したロールを設定します。

lambdaBasicSettings.png

最後に、環境変数を追加します。

lambdaEnvVar.png

index.js の次の部分を参考に、「process.env.」に続く大文字部分を「キー」に入れ、それぞれ対応する値を設定します。

環境変数の設定は次のようになります。

lambdaEnvEdit_2.png

実行

kintone にデータを登録して、プロセス管理のステータスを「ツイート待ち」まで進めましょう。

result1.png

ツイート日時経過後にLambdaが実行されたタイミングでツイートされました!

result3.png

kintone のデータを確認すると、ステータスが進み、ツイートURLに値がセットされています。

result2.png

終わりに

ばっちりツイートされましたね!これなら安心して Twitter 運用できそうです。
設定が少し大変ですが是非チャレンジしてみてください。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

サインインしてコメントを残してください。