20190424 會議記錄

ttcat, orz, bil, 文武, ggm

上次開會紀錄:https://g0v.hackmd.io/s/rJB1nENcN

小聚檢討

貼紙補償

名單看KKtix 人都有報到

  • 小狗小豬各50張 (Lucien給圖?)
    Caroline
    Lillian
    Paul
    文武
    Lucien (我說那個小貼貼啊)
    Cindy
    Andy
    嘟嘟

    韋婷
    Michael
    ggm
    bil
    orz
    4000

闢謠送貼圖

  • 是時候檢查檢查有沒有新的200了

(已經發文)

新功能貼文

Downvote 理由

待寫文案 + 出圖

理由檢討

From https://g0v.hackmd.io/s/rJB1nENcN#今日討論紀錄

  1. 文武提案:隱藏只送一次且沒填寫理由的訊息
  2. bil 提案:提供方法來標記個別使用者「不用傳理由」,用於線下活動,降低高濃度浸潤假訊息的人傳訊息進來的門檻

MrOrz:
小孩才做選擇,大人就是兩個都做。
bil 提案也會需要文武提案「讓每個人都能不填理由」增加回報率,才能讓訊息更快進入大眾視野(盡快達成有 2 人以上回報)

能推播的新功能

上次討論:
https://g0v.hackmd.io/s/rJB1nENcN#能推播的新功能

  • LINE bot server connect to database, 獨立於 cofacts API,保持 client 獨立性
  • 一個 LIFF: 列出所有這個 user id 傳過、有建檔的訊息,以及回應狀況,還有已讀未讀狀況
  • trigger menu
  • cron job 產生 push notification
    1. 知道哪些 article id 要查
    2. 跟 cofacts API 要資料
    3. 實際去 push message
  • nice to have: 任何新回應都通知

cronjob 邏輯

  1. 從 redis 取得上次 cronjob 啟動的 timestamp
  2. 去 Cofacts API 列出所有在該 timestamp 以後才新建立、且未刪除的 ArticleReply
  3. 由 2 整理出 list of unique, updated article ids
  4. 從 user <> selected article 關聯表,找出要通知的對象 (list of unique users to update)
  5. 使用 multicast API 告知使用者「之前的訊息有回應囉」導引使用者點開 LIFF
  6. redis 紀錄這次執行的 timestamp

LIFF 顯示邏輯

  • 從 LIFF API 取得 user id;持 user id 向 LINE bot server 查詢新的 API,得到自己查詢過的文章列表
  • 文章列表,包含:
    • 時間
    • 文章內文節錄(點擊時進入 cofacts、紀錄「已讀」)
    • 回應數(新的數量)
  • 點按 LIFF 會傳訊息進 Cofacts chatbot,chatbot 列出回應列表供使用者點按,進入 CHOOSING_REPLY;若只有一則回應,自動 skipUser
    • 這樣使用者才能在 LINE bot 內按「有用沒用」回應
    • 在 LINE bot 內比在 LIFF 內方便轉傳
    • 回應內仍然有文章連結,使用者如果真的要進網站,也不會沒門路
  • 顯示上次 cron job 執行日期(redis 內 timestamp)

user <> selected article 關聯表 insert 時機

  • 傳訊息、資料庫沒有、填寫理由送出後
  • 傳訊息、選擇一則資料庫訊息,但該訊息沒有回應。 (沒填理由也算)
  • 傳訊息、選擇一則資料庫訊息,有回應。

相關 API quota

Send multicast message, LINE official accounts

  • 100,000 requests per minute
  • 2,000,000 recipients per minute

DB schema

紀錄 user <> selected article 關聯

  • userId: LINE user ID
  • articleId: Cofacts article ID
  • createdAt: 關聯建立之時間
  • timing: 第一次送出 or 尚無回應 or 已有回應
  • readAt: 使用者已讀此訊息的時間。LIFF 內用此計算新回應篇數。在使用者點擊 LIFF 時更新。

Redis 新欄位:scannedAt

紀錄上次執行 cron job 的時間。

GEC (deadline: 4/29)

送出前改改討論。

Tech4Democracy case study (deadline: 5/3)

coscup 社群軌投稿 (deadline: 5/6)

https://blog.coscup.org/2019/04/2019-cfp-open.html#g0v

哈囉,g0v 今年也參加了COSCUP 的社群議程,今年 g0v 社群議程原則上包含下列主題—「開放政府」、「新媒體」、「公共服務」、「開放資料」、「社會參與」和「基礎建設」這幾個大方向。歡迎各位投稿分享你今年的專案吧!