Progaku-copy / progaku-archive

Progakuのアーカイブ用のアプリ
0 stars 1 forks source link

データ取り込みを再設計する #130

Open kakeru-one opened 2 weeks ago

kakeru-one commented 2 weeks ago

設計内容

# TODO: postersテーブルを作る
create_table :posters, charset: 'utf8mb4', collation: 'utf8mb4_0900_ai_ci', force: :cascade do |t|
  t.string :user_key, null: false, unique: true, comment: 'slack上でのuser.id'
  t.string :display_name, null: true, comment: 'slack上での表示名'
  t.string :real_name, null: true, comment: 'slack上での本名'

  t.timestamps
end

備考

Slack APIのエンドポイント

SLACK_USER_URL = 'https://slack.com/api/users.list'
SLACK_CHANNEL_BASE_URL = 'https://slack.com/api/conversations.history'
SLACK_THREAD_BASE_URL = 'https://slack.com/api/conversations.replies'
kuri0616 commented 2 weeks ago

GET 'https://slack.com/api/conversations.history'のレスポンス

"messages": [
        {
            "user": "U036T5YDF9Q",
            "type": "message",
            "ts": "1727687372.139559",
            "client_msg_id": "9f1466e4-1058-44c8-b498-e35f52bc1fec",
            "text": "メールでお知らせ来てたけど面白そう:eyes:\n\n<https://increments.connpass.com/event/329657/>",
            "team": "T037GUBF5EU",
            "thread_ts": "1727687372.139559",
            "reply_count": 1,
            "reply_users_count": 1,
            "latest_reply": "1727694308.824379",
            "reply_users": [
                "U06MLLDUTDY"
            ],
            "is_locked": false,
            "subscribed": false,
            "attachments": [
                {
                    "from_url": "https://increments.connpass.com/event/329657/",
                    "image_url": "https://media.connpass.com/thumbs/0f/88/0f8896907defe65913f6c5491e657fb4.png",
                    "image_width": 1200,
                    "image_height": 630,
                    "image_bytes": 320674,
                    "service_icon": "https://connpass.com/static/img/apple_touch_icon.png",
                    "id": 1,
                    "original_url": "https://increments.connpass.com/event/329657/",
                    "fallback": "connpass: 【Qiita後援】typeエンジニア転職フェア ~大手・優良企業100社以出展~ (2024/10/12 11:00〜)",
                    "text": "# 10/12(土)11:00〜18:00 東京ドームシティ プリズムホール開催!エンジニア向けオフライン転職イベント # 参加方法(参加を希望する方は、下記の参加申込ページよりお申し込みください) ## 参加申込ページ # こんな方におすすめ * 転職をお考えのエンジニア経験者の方 * 未経験からエンジニアへの転職を希望している方 * 一度に複数の企業情報収集をしたい方 * 企業の人事担当者と直接お話がしたい方 # typeエンジニア転職フェアのおすすめポイント * おすすめ企業ブース案内コーナー&コンシェルジュ * ご自身の経験やスキル、志向な...",
                    "title": "【Qiita後援】typeエンジニア転職フェア ~大手・優良企業100社以出展~ (2024/10/12 11:00〜)",
                    "title_link": "https://increments.connpass.com/event/329657/",
                    "service_name": "connpass"
                }
            ],
            "blocks": [
                {
                    "type": "rich_text",
                    "block_id": "8wDHc",
                    "elements": [
                        {
                            "type": "rich_text_section",
                            "elements": [
                                {
                                    "type": "text",
                                    "text": "メールでお知らせ来てたけど面白そう"
                                },
                                {
                                    "type": "emoji",
                                    "name": "eyes",
                                    "unicode": "1f440"
                                },
                                {
                                    "type": "text",
                                    "text": "\n\n"
                                },
                                {
                                    "type": "link",
                                    "url": "https://increments.connpass.com/event/329657/"
                                }
                            ]
                        }
                    ]
                }
            ],
            "reactions": [
                {
                    "name": "eyes",
                    "users": [
                        "U05E3V48YAF",
                        "U04TUPB1HND",
                        "U06M9BW39UP"
                    ],
                    "count": 3
                },
                {
                    "name": "clap",
                    "users": [
                        "U04TUPB1HND"
                    ],
                    "count": 1
                },
                {
                    "name": "あーかいぶ_pa1101",
                    "users": [
                        "U04TUPB1HND"
                    ],
                    "count": 1
                }
            ]
        },
kuri0616 commented 1 week ago

TODO

0.SlackApiを叩くクラスの作成

1.Slack Userの取り込みAPI

2.Slack の投稿の取り込みAPI

3.スレッドコメントの取り込みAPI