Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Notes と Connections Cloud を連携してみた

Notes と Connections Cloud を連携してみた

IBM Connections Cloud に開設したコミュニティーへの投稿を増やしたい管理者から相談があり、投稿などのアクションに応じたインセンティブを与えるため、ユーザーのアクションを取得してサマリーを表示する仕組みをNotesで作った事例です。

2016年12月16日開催の「テクてくLotus技術者夜会」で使用したスライドです。

Haruyuki Nakano

September 17, 2022
Tweet

More Decks by Haruyuki Nakano

Other Decks in Technology

Transcript

  1. Notes と
    IBM Connections Cloud を
    連携してみた
    2016年12月16日
    中野晴幸
    @harunakano
    ノーツってヤッぁ..二児の父の苦悩つ

    View Slide

  2. コミュニティー管理者は悩んでいた
    どうすれば皆がコミュニティーへ投稿する?
    インセンティブを与えれば?
    投稿状況を調べたら相当な手間がかかってしまった…

    View Slide

  3. 投稿の状況を調べる方法は?
    ➢コミュニティーへの投稿をもれなく見る
    ➢ジャーナル(ログ)
    ➢IBM Connections API

    View Slide

  4. ジャーナル(ログ)
    膨大。コミュニティー管理者が投稿の状況を調べる手間は変わらない
    欲しい部分を我々(Connections Cloud 管理者)がジャーナルから抽出する手間は避けたい
    今日の投稿が明日の午後まで調べられない

    View Slide

  5. 投稿の状況を調べる方法は?
    ➢コミュニティーへの投稿をもれなく見る
    ➢ジャーナル(ログ)
    ➢IBM Connections API

    View Slide

  6. IBM Connection API
    ✓欲しい情報(リソース)を示す「URI」にパラメータをくっつけると、URLのできあがり
    ✓URLを投げるとテキストが返ってくる
    ✓ブラウザの拡張機能(RESTクライアント)を使って試せる

    View Slide

  7. 投稿の状況を調べる方法は?
    ➢コミュニティーへの投稿をもれなく見る
    ➢ジャーナル(ログ)
    ➢IBM Connections API

    View Slide

  8. URLはこんな感じ
    https://apps.ap.collabserv.com/communities/service/atom/community/forum/topics?communityUuid=[コミュニティーのID]
    コミュニティーからフォーラム・トピックのリストを取るURI
    パラメータに
    コミュニティーのID
    参考: Connections Cloud API documentation
    アジア・パシフィック の
    Connections Cloud

    View Slide

  9. 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です

    View Slide

  10. 返ってくるテキスト(XML)

    トピックのタイトル
    rel="recommendations" type="application/atom+xml" snx:recommendation="2"/>

    2016-12-15T02:24:30.601Z

    HOGEHOGE TARO
    000000000

    type="application/atom+xml" thr:count="5"/>

    ※内容の一部です

    View Slide

  11. テキスト(XML)の内容

    トピックのタイトル
    rel="recommendations" type="application/atom+xml" snx:recommendation="2"/>

    2016-12-15T02:24:30.601Z

    HOGEHOGE TARO
    000000000

    type="application/atom+xml" thr:count="5"/>

    ※内容の一部です
    トピックに「いいね!」は2件
    トピックのタイトル
    このスレッド全体に「いいね!」は4件
    投稿日時
    投稿者ID
    返信は4件

    View Slide

  12. XMLを “XmlNodeReader” で解析
    参考: nsftools
    ※LotusScriptです

    View Slide

  13. “XmlNodeReader” 使用例
    参考: nsftools
    Dim reader As New XmlNodeReader
    Call reader.ReadText( response )
    arr = reader.getNodeReaders("feed.entry")
    Forall nr In arr
    v = nr.get("title")
    End Forall


    タイトルA


    タイトルB


    タイトルC


    XML LotusScript
    例)投稿のタイトルを取り出す

    View Slide

  14. 連携の概要
    Notesアプリ
    Connections Cloud
    コミュニティー
    投稿状況収集
    マイル変換
    次の投稿に対応
    ➢ ファイル
    ➢ フォーラム
    ➢ ブログ

    View Slide

  15. マイルについて
    コミュニティーへの投稿をマイルに換算
    アクション マイル
    投稿する 100
    返信する 10
    「いいね」する 1
    「いいね」される 2
    1回の投稿(アクション)あたりのマイル(フォーラム):

    View Slide

  16. Notes アプリ

    View Slide

  17. 表示内容
    ユーザー(Notes アカウント)の
    Common Name
    マイル数
    マイル数上位
    10名のリスト
    投稿サマリーへのリンク
    ランク
    Connections Cloud へのリンク

    View Slide

  18. まだ改良の余地が…
    ➢毎回すべての投稿を取ってくる
    ➢ 前回からの「更新分だけ」取ってくる、そんなパラメータが欲しい
    ➢いいね!した日時が取れない
    ➢ 月間ランキングを作れない
    ➢ 「いいね!」した日付は毎日処理すれば良いが、時刻がわからない
    ➢ SRへ改善を要望した
    ➢処理を自動化しづらい
    ➢ アカウント・パスワードの期限切れへの対応
    ➢処理時間が長い
    ➢ 1リクエストあたりのレスポンスに含まれる投稿の数を増やし、リクエスト数を減らしたい
    ➢ 9桁の投稿者IDから Notes アカウントへの変換が必要
    などなど…

    View Slide