![[レポート] MOB314: Amazon Pinpoint & Amazon Comprehendを使ったソーシャルメディアの感情解析 #reinvent](https://devio2023-media.developers.io/wp-content/uploads/2018/11/eyecatch_reinvent-2018-city_1200x630.jpeg)
[レポート] MOB314: Amazon Pinpoint & Amazon Comprehendを使ったソーシャルメディアの感情解析 #reinvent
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Perform Social Media Sentiment Analysis with Amazon Pinpoint & Amazon Comprehend
本日はre:Invent 2018のワークショップ「Perform Social Media Sentiment Analysis with Amazon Pinpoint & Amazon Comprehend」に参加してきました。
概要は以下の通りです。
In this workshop, we show you how to easily deploy an AWS solution that ingests all Tweets from any Twitter handle, uses Amazon Comprehend to generate a sentiment score, and then automatically engages customers with a dynamic, personalized message. The intended audience is developers and marketers who want to leverage AWS to create powerful user engagement scenarios. We highlight how quickly you can deploy a machine learning marketing solution. We cover Amazon Pinpoint, the AWS user engagement service, and Amazon Comprehend, the AWS natural language processing service that uses artificail intelligence and machine learning to find insights and relationships in text.
このワークショップの成果物
Amazon PinpointとAmazon Comprehendを使って、Facebookのフィード投稿を読み取ってWebプッシュを送るといったサンプルアプリを構築します。
アーキテクチャ
以下のアーキテクチャのサービスを構築します。
- FacebookにログインするWebアプリ
- Facebookのフィード投稿でAPI Gatrwayをフック
- API GatewayからLambdaをInvokeし、Comprehendで内容を解析
- 解析した内容でPinpointのEndpointをアップデート
- デイリーのキャンペーンなどにEndpoint情報を利用してWebプッシュ
ソースコード
本セッションのソースコードは以下よりcloneできます。READMEに手順が書いていますので、どなたでも試すことができます。
手順
手順が結構多いですが、あまり難しいことはありませんでした。
- リポジトリ(aws-samples/mob314-workshop)をclone
- リポジトリに移動
- node modulesをインストール
amplify configureでIAM Userを作成amplify initでCloudFormation Stackを構築- Firebaseのプロジェクトを作成、サーバーキーを取得
amplify add notificationsでプッシュ通知サービスを追加amplify pushでデプロイ、/src/aws-exports.jsのaws_mobile_analytics_app_idを書き換え- こちらのリンクからCloudFormation Stackを作成
- Facebook DeveloperでAppを新規作成
/src/App.jsの<FacebookLogin appId="your_app_id_here"を Facebook App Id に書き換え/public/firebase-messaging-sw.jsと/src/push-notification.jsのmessagingSenderId: 'your_sender_ID_here'を書き換え- Windowsの場合はnpm scriptsを変更する(
set HTTPS=trueする) - Facebookアプリの「Facebook Login」を有効にし、Webを選択しSite URLを
localhost:3000に設定する - Facebookアプリの「Webhook」を有効にする
- 「Webhook」の設定で「Page」をSucscribeし、Callback URLをCloudFormationのOutputsの
apiGatewayInvokeURLを設定しVerify TokenにThisIsATokenという文字列を設定する - 一覧から
feedをSubscribeする - FacebookアプリのDashboard上部でPublicにする。プライバシーポリシーURLを
https://aws.amazon.com/privacy/に、App Domainをlocalhostに設定する - オレオレ証明書付きでGoogle Chromeを起動し
yarn startでローカル起動する
オレオレ証明書付きでGoogle Chromeを起動するには、Macの場合以下のコマンドで可能です。
$ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=/tmp/foo --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost:3000
動作結果
起動するとこのようなアプリが。ベルがなんとも言えません。
「LOGIN WITH FACEBOOK」でOAuth認証を行います。
あとはFacebookでフィードを投稿すると、WebhookでAPI Gatewayが呼ばれ、Webプッシュが届きます。
まとめ
CloudFormation Templateが作り込まれていたので簡単に試すことができました。別途、CloudFormation Templateの中身を読み解いていきたいと思います。














