IBM Connections Cloud に開設したコミュニティーへの投稿を増やしたい管理者から相談があり、投稿などのアクションに応じたインセンティブを与えるため、ユーザーのアクションを取得してサマリーを表示する仕組みをNotesで作った事例です。
2016年12月16日開催の「テクてくLotus技術者夜会」で使用したスライドです。
Notes とIBM Connections Cloud を連携してみた2016年12月16日中野晴幸@harunakanoノーツってヤッぁ..二児の父の苦悩つ
View Slide
コミュニティー管理者は悩んでいたどうすれば皆がコミュニティーへ投稿する?インセンティブを与えれば?投稿状況を調べたら相当な手間がかかってしまった…
投稿の状況を調べる方法は?➢コミュニティーへの投稿をもれなく見る➢ジャーナル(ログ)➢IBM Connections API
ジャーナル(ログ)膨大。コミュニティー管理者が投稿の状況を調べる手間は変わらない欲しい部分を我々(Connections Cloud 管理者)がジャーナルから抽出する手間は避けたい今日の投稿が明日の午後まで調べられない
IBM Connection API✓欲しい情報(リソース)を示す「URI」にパラメータをくっつけると、URLのできあがり✓URLを投げるとテキストが返ってくる✓ブラウザの拡張機能(RESTクライアント)を使って試せる
URLはこんな感じhttps://apps.ap.collabserv.com/communities/service/atom/community/forum/topics?communityUuid=[コミュニティーのID]コミュニティーからフォーラム・トピックのリストを取るURIパラメータにコミュニティーのID参考: Connections Cloud API documentationアジア・パシフィック のConnections Cloud
URLを投げるurl = “https://apps.ap.collabserv.com/uri?param=...”Set xhr = CreateObject("Microsoft.XMLHTTP")Call xhr.Open("GET", url, False)Call xhr.Send()response = xhr.responseText※LotusScriptです
返ってくるテキスト(XML)トピックのタイトルrel="recommendations" type="application/atom+xml" snx:recommendation="2"/>2016-12-15T02:24:30.601ZHOGEHOGE TARO000000000type="application/atom+xml" thr:count="5"/>※内容の一部です
テキスト(XML)の内容トピックのタイトルrel="recommendations" type="application/atom+xml" snx:recommendation="2"/>2016-12-15T02:24:30.601ZHOGEHOGE TARO000000000type="application/atom+xml" thr:count="5"/>※内容の一部ですトピックに「いいね!」は2件トピックのタイトルこのスレッド全体に「いいね!」は4件投稿日時投稿者ID返信は4件
XMLを “XmlNodeReader” で解析参考: nsftools※LotusScriptです
“XmlNodeReader” 使用例参考: nsftoolsDim reader As New XmlNodeReaderCall reader.ReadText( response )arr = reader.getNodeReaders("feed.entry")Forall nr In arrv = nr.get("title")End ForallタイトルAタイトルBタイトルCXML LotusScript例)投稿のタイトルを取り出す
連携の概要NotesアプリConnections Cloudコミュニティー投稿状況収集マイル変換次の投稿に対応➢ ファイル➢ フォーラム➢ ブログ
マイルについてコミュニティーへの投稿をマイルに換算アクション マイル投稿する 100返信する 10「いいね」する 1「いいね」される 21回の投稿(アクション)あたりのマイル(フォーラム):
Notes アプリ
表示内容ユーザー(Notes アカウント)のCommon Nameマイル数マイル数上位10名のリスト投稿サマリーへのリンクランクConnections Cloud へのリンク
まだ改良の余地が…➢毎回すべての投稿を取ってくる➢ 前回からの「更新分だけ」取ってくる、そんなパラメータが欲しい➢いいね!した日時が取れない➢ 月間ランキングを作れない➢ 「いいね!」した日付は毎日処理すれば良いが、時刻がわからない➢ SRへ改善を要望した➢処理を自動化しづらい➢ アカウント・パスワードの期限切れへの対応➢処理時間が長い➢ 1リクエストあたりのレスポンスに含まれる投稿の数を増やし、リクエスト数を減らしたい➢ 9桁の投稿者IDから Notes アカウントへの変換が必要などなど…