• ..

Postgresql

    特定のメッセージを取得

    conversations.repilesを使います。最低限必要なのは

    • トークン token ($tに置いてます)
    • チャンネルID channel ($cに置いてます)
    • タイムスタンプ ts

    です。

    # bash
    export u="https://slack.com/api/conversations.replies?token=$t&channel=$c&ts=1555390101.000300"
    # fish
    # set -l u "https://slack.com/api/conversations.replies?token=$t&channel=$c&ts=1555390101.000300"
    
    curl -Ss $u | jq .messages

    messagesというプロパティに配列でメッセージが入っています。以下はただのメッセージのtsを設定した時のレスポンス例です。

    [
      {
        "type": "message",
        "subtype": "bot_message",
        "text": "aa",
        "ts": "1555390101.000300",
        "username": "Slack API Tester",
        "bot_id": "BD0LHGB2S",
        "thread_ts": "1555389874.000100"
      }
    ]

    次にスレッドです。同じようにスレッド化しているtsを使います。

    # bash
    export u="https://slack.com/api/conversations.replies?token=$t&channel=$c&ts=1555394677.001400"
    # fish
    # set -l u "https://slack.com/api/conversations.replies?token=$t&channel=$c&ts=1555394677.001400"
    
    curl -Ss $u | jq .messages

    スレッドの場合は、messagesにスレッドのメッセージが含まれ、配列1つ目のメッセージに、

    • replay_count
    • replay_user_count
    • latest_reply
    • reply_users
    • repiles
    • subscribed

    というプロパティが増えます。

    [
      {
        "type": "message",
        "subtype": "bot_message",
        "text": "a",
        "ts": "1555394677.001400",
        "username": "Slack API Tester",
        "bot_id": "BD0LHGB2S",
        "thread_ts": "1555394677.001400",
        "reply_count": 4,
        "reply_users_count": 1,
        "latest_reply": "1555398693.000400",
        "reply_users": [
          "BD0LHGB2S"
        ],
        "replies": [
          {
            "user": "BD0LHGB2S",
            "ts": "1555395278.001500"
          },
          {
            "user": "BD0LHGB2S",
            "ts": "1555395460.002100"
          },
          {
            "user": "BD0LHGB2S",
            "ts": "1555398692.000200"
          },
          {
            "user": "BD0LHGB2S",
            "ts": "1555398693.000400"
          }
        ],
        "subscribed": false
      },
      {
        "type": "message",
        "subtype": "bot_message",
        "text": "aa",
        "ts": "1555395278.001500",
        "username": "Slack API Tester",
        "bot_id": "BD0LHGB2S",
        "thread_ts": "1555394677.001400"
      },
      {
        "type": "message",
        "subtype": "bot_message",
        "text": "aaa",
        "ts": "1555395460.002100",
        "username": "Slack API Tester",
        "bot_id": "BD0LHGB2S",
        "thread_ts": "1555394677.001400"
      },
      {
        "type": "message",
        "subtype": "bot_message",
        "text": "aaa",
        "ts": "1555398692.000200",
        "username": "Slack API Tester",
        "bot_id": "BD0LHGB2S",
        "thread_ts": "1555394677.001400"
      },
      {
        "type": "message",
        "subtype": "bot_message",
        "text": "aaa",
        "ts": "1555398693.000400",
        "username": "Slack API Tester",
        "bot_id": "BD0LHGB2S",
        "thread_ts": "1555394677.001400"
      }
    ]