Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
JT
Uploaded by
Jun Terashita
PDF, PPTX
6,184 views
Alfresco勉強会#35 AlfrescoのアクティビティフィードをSlackに送るカスタマイズ
第35回Alfresco勉強会で発表した資料です。AlfrescoのアクティビティフィードをEメールではなくSlackに送るカスタマイズ方法を紹介しました。
Software
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 16
2
/ 16
3
/ 16
4
/ 16
5
/ 16
6
/ 16
7
/ 16
8
/ 16
9
/ 16
10
/ 16
11
/ 16
12
/ 16
13
/ 16
14
/ 16
15
/ 16
16
/ 16
More Related Content
PDF
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
by
Jun Terashita
PDF
Alfresco study29 activitymonitoring
by
Takeshi Totani
PPTX
0からわかるAlfresco 2017年1月版
by
MoritakaSoma
PPTX
開発者向けAlfrescoのご紹介(2013/03/27 JJUG ナイトセミナー「Java製OSS特集」発表資料)
by
Takuma Sugimoto
PPTX
Alfresco Javascript Consoleのご紹介
by
MoritakaSoma
PPTX
Alfresco Bulk Import toolのご紹介
by
MoritakaSoma
PPTX
Share UIカスタマイズの第一歩
by
MoritakaSoma
PPTX
Alfresco勉強会#31 alfresco 5.0にウイルススキャン機能を実装してみる
by
Tasuku Otani
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
by
Jun Terashita
Alfresco study29 activitymonitoring
by
Takeshi Totani
0からわかるAlfresco 2017年1月版
by
MoritakaSoma
開発者向けAlfrescoのご紹介(2013/03/27 JJUG ナイトセミナー「Java製OSS特集」発表資料)
by
Takuma Sugimoto
Alfresco Javascript Consoleのご紹介
by
MoritakaSoma
Alfresco Bulk Import toolのご紹介
by
MoritakaSoma
Share UIカスタマイズの第一歩
by
MoritakaSoma
Alfresco勉強会#31 alfresco 5.0にウイルススキャン機能を実装してみる
by
Tasuku Otani
What's hot
PPTX
Share UIカスタマイズ Widget編
by
MoritakaSoma
PDF
Alfresco勉強会#21 Alfresco Workdesk Configuratorによるpluginの設定変更方法
by
Jun Terashita
PDF
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
by
Ryota Watabe
PPTX
Alfresco勉強会#26 alfresco community 5.0でssoを設定する
by
Tasuku Otani
PDF
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
by
Jun Terashita
PDF
20140129 alfresco addons
by
Takeshi Totani
PPTX
Alfresco study32 introducing5.1
by
Takeshi Totani
PPTX
0からわかるAlfresco
by
MoritakaSoma
PDF
Alfresco ce 4.2の新機能
by
Jun Terashita
PPTX
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
by
Tasuku Otani
PPTX
Alfresco紹介
by
Tetsuya Hasegawa
KEY
Alfresco Google Docs連携
by
Ashitaba YOSHIOKA
PDF
Alfresco勉強会#28 メタデータテンプレート
by
Jun Terashita
PDF
20130801 alfresco study17customizemap
by
Takeshi Totani
PDF
Alfresco day technical update
by
Yoshi Aochi
PDF
Alfresco勉強会#15 alfresco 4をインストールしてみよう!
by
Tasuku Otani
PDF
【20140521 第1回勉強会】後編 alfrescoの基本操作
by
マジセミ by (株)オープンソース活用研究所
PDF
【第1.5回勉強会】後編 alfrescoの基本操作
by
マジセミ by (株)オープンソース活用研究所
PDF
2013.6.18 NemakiWare & CmisSync ワークショップ
by
Takuma Sugimoto
PDF
企業のためのコンテンツプラットホーム Alfresco
by
Yoshi Aochi
Share UIカスタマイズ Widget編
by
MoritakaSoma
Alfresco勉強会#21 Alfresco Workdesk Configuratorによるpluginの設定変更方法
by
Jun Terashita
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
by
Ryota Watabe
Alfresco勉強会#26 alfresco community 5.0でssoを設定する
by
Tasuku Otani
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
by
Jun Terashita
20140129 alfresco addons
by
Takeshi Totani
Alfresco study32 introducing5.1
by
Takeshi Totani
0からわかるAlfresco
by
MoritakaSoma
Alfresco ce 4.2の新機能
by
Jun Terashita
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
by
Tasuku Otani
Alfresco紹介
by
Tetsuya Hasegawa
Alfresco Google Docs連携
by
Ashitaba YOSHIOKA
Alfresco勉強会#28 メタデータテンプレート
by
Jun Terashita
20130801 alfresco study17customizemap
by
Takeshi Totani
Alfresco day technical update
by
Yoshi Aochi
Alfresco勉強会#15 alfresco 4をインストールしてみよう!
by
Tasuku Otani
【20140521 第1回勉強会】後編 alfrescoの基本操作
by
マジセミ by (株)オープンソース活用研究所
【第1.5回勉強会】後編 alfrescoの基本操作
by
マジセミ by (株)オープンソース活用研究所
2013.6.18 NemakiWare & CmisSync ワークショップ
by
Takuma Sugimoto
企業のためのコンテンツプラットホーム Alfresco
by
Yoshi Aochi
Alfresco勉強会#35 AlfrescoのアクティビティフィードをSlackに送るカスタマイズ
1.
2016年9月28日 Jun Terashita 第35回 Alfresco勉強会 Alfrescoのアクティビティフィードを Slackに送るカスタマイズ
2.
発表内容について • Alfrescoのアクティビティフィード(後で簡単にご説明します)をSlackに流 すためのカスタマイズ方法をご紹介します。 • あくまでもアクティビティフィードをSlackに送れることを試すためのもので あり、全く完成版ではなく、実用化するためにはまだまだ改良が必要です。 •
今回ご紹介するカスタマイズのソースコードはこちら 3
3.
今回使用する環境 • Alfresco Community
Edition 201605 GA ⁃ 2016.09.28現在の最新版のGA 4
4.
アクティビティとは • コンテンツのアップロードや更新、ダウンロードといったユーザの操作が「ア クティビティ」として記録されており、ダッシュボードに表示したりRSSフィ ードを取得したりすることができる。 5
5.
アクティビティフィードとは • 指定されたタイミング(デフォルトでは毎日0:00)でアクティビティをEメー ルで配信する仕組み。 6
6.
なぜSlackに送る? • メールで1日1回配信よりリアルタイムに近い形でSlack等(Slackじゃなくて もよい、Mattermostとか)に配信した方がちゃんと見るのではないか、とい うのが今回のモチベーション。 • メールを送る頻度を高めるという方法もあり、それならプロパティを書き換え るだけで簡単に実現できるが、システムからの通知がメールで大量に送られて くるのが個人的にあまり好きではないので・・・。 7
7.
RSSフィードをSlackで受け取ればいいのでは? • 要件次第ではその選択肢もあり得る。 • コンテンツに対するアクセス権の問題があるため、アクティビティフィードの 内容はユーザ毎に異なる。そのためRSSフィードのURLもユーザ毎に違うし認 証も必要になる。 •
Slackでユーザ毎にRSS購読の設定をすれば(そのようなことができるかどう かは未確認)実現できるかもしれないし、もしかしたらSlack側にちょうどよ いアプリがあるかもしれないが今回はAlfresco側をカスタマイズして実現して みる。 8
8.
カスタマイズの方針 • できるだけ簡単に実装するため、Eメール通知でメールを送信している部分の み置き換える。 • Slack側ではIncoming
WebHookを使って通知を受け取る。 9
9.
SlackUserNotifierクラスの作成 • Eメール通知用の org.alfresco.repo.activities.feed.EmailUserNotifier
をコ ピーして SlackUserNotifier クラスを作成し、#notifyUser の内容を書き換 える。 10 protected void notifyUser(NodeRef personNodeRef, String subjectText, Object[] subjectParams, Map<String, Object> model, String templateNodeRef) { Gson gson = new Gson(); try { JSONArray activitiesArray = new JSONArray(gson.toJson(model.get("activities"))); String botName = "Alfresco"; for (int i = 0; i < activitiesArray.length(); i++) { // アクティビティの内容からSlackに送信する要素を抽出 JSONObject activity = activitiesArray.getJSONObject(i); String target = "@" + activity.getString("feedUserId"); … … … // 抽出した要素でSlackのIncoming WebHookに送るpayloadを作成 StringBuilder payload = new StringBuilder(); payload.append("payload={¥"channel¥":¥""); … … … // SlackのIncoming WebHookにPOST HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost request = new HttpPost(this.slackWebhookUrl); … … … } … … … }
10.
Beanの差し替え • Bean定義を上書きするために以下の内容を custom-activity-feed- context.xml
として作成し、以下の場所に配置する。 tomcat/shared/classes/alfresco/extension/subsystems/ActivitiesFeed/d efault/default 11 <?xml version='1.0' encoding='UTF-8'?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="feedNotifier" class="org.alfresco.repo.activities.feed.FeedNotifierImpl"> … … … <property name="searchService" ref="SearchService"/> <!-- <property name="userNotifier" ref="emailUserNotifier"/> --> <property name="userNotifier" ref="slackUserNotifier"/> <property name="numThreads" value="${activities.feedNotifier.numThreads}"/> <property name="batchSize" value="${activities.feedNotifier.batchSize}"/> </bean> <bean id="slackUserNotifier" class="jp.aegif.alfresco.repo.activities.feed.SlackUserNotifier"> <property name="activitiesFeedModelBuilderFactory" ref="feedModelBuilderFactory"/> <property name="activityService" ref="activityService"/> … … …
11.
(補足)Beanの差し替え • Bean定義を上書きするために以下の内容を custom-activity-feed- context.xml
として作成し、以下の場所に配置する。 tomcat/shared/classes/alfresco/extension/subsystems/ActivitiesFeed/d efault/default 12 これは誤植ではなくdefaultを2回重ねる必要があり ます。けっこうハマるポイントなので要注意。 詳しくはこちらを参照してください。 https://community.alfresco.com/docs/DOC-5777- alfresco-subsystems#w_extensionclasspath
12.
alfresco-global.properties に設定値を追記 • SlackのIncoming
WebHook用のURLをプロパティとして設定し、通知を送 る頻度を10秒に1回に変更する。 13 activities.feedNotifier.slackWebhookUrl=https://hooks.slack.com/services/XXXXXXXX activities.feed.notifier.cronExpression=0/10 * * * * ?
13.
(デモ) 14
14.
改善すべき点 • 配信するメッセージのフォーマットを整える。Eメール通知やRSSフィードの 仕組みを応用すれば多言語対応もできるはず。 • Eメールで1日1回送りつつ、今回のようにリアルタイムに近い形での配信も行 う場合は送信済みのアクティビティの管理方法を考える必要がある。 ※デフォルトのEメール通知では一度送ったアクティビティには送信済みのフ ラグが付けられ、何度も送信されない仕組みがある。今回もEメールによる通 知をSlackに置き換えているだけなので同じ仕組みで動いている。両方を併用 する場合はSlackには送ったがEメールでは送っていないといったステータス の管理が必要になる。 •
今回はAlfresco上のユーザ名とSlack上のユーザ名が同じであるという前提で 作ったが、両者が異なる場合には変換する仕組みが必要。 15
15.
(参考) • Alfresco addons
にSlack連携のアドオンがありました。 https://addons.alfresco.com/addons/alfresco-slack-plugin • SOURCE SENSEという会社が作っているようで、設定用のUIもあるようで す。興味のある方は使ってみるとよいかもしれません(紹介しておいて申し訳 ありませんが動作確認はしてません・・・)。 16
Download