Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
外部サービス連携で学んだこと 〜メール編〜
Search
otsuka
November 29, 2023
Technology
110
0
Share
外部サービス連携で学んだこと 〜メール編〜
otsuka
November 29, 2023
Other Decks in Technology
See All in Technology
ファインディの事業拡大を支える 拡張可能なデータ基盤へのリアーキテクチャ
hiracky16
0
860
Oracle Cloud Infrastructure:2026年4月度サービス・アップデート
oracle4engineer
PRO
0
320
新卒エンジニア研修、ハンズオンの設計における課題と実践知/ #tachikawaany
nishiuma
2
110
AI駆動開発で生産性を追いかけたら、行き着いたのは品質とシフトレフトだった
littlehands
0
360
AIと乗り切った1,500ページ超のヘルプサイト基盤刷新とさらにその先の話
mugi_uno
2
300
Sociotechnical Architecture Reviews: Understanding Teams, not just Artefacts
ewolff
1
110
古今東西SRE
okaru
1
120
AIの揺らぎに“コシ”を与える階層化品質設計
ickx
0
210
[Oracle TechNight#99] 生成AI時代のAI/ML入門 ~ AIとオラクルデータベースの関係 (後半)
oracle4engineer
PRO
3
220
20260428_Product Management Summit_tadokoroyoshiro
tadokoro_yoshiro
15
18k
国内外の生成AIセキュリティの最新動向 & AIガードレール製品「chakoshi」のご紹介 / Latest Trends in Generative AI Security (Domestic & International) & Introduction to AI Guardrail Product "chakoshi"
nttcom
4
1.7k
小さいVue.jsを30分で作る
hal_spidernight
0
140
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
190
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
240
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
370
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
Six Lessons from altMBA
skipperchong
29
4.2k
Context Engineering - Making Every Token Count
addyosmani
9
860
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
The Cost Of JavaScript in 2023
addyosmani
55
9.9k
Transcript
© Magic Moment 2021 外部サービス連携で学んだこと ~メール編~ © Magic Moment 2021
Shohei Otsuka 株式会社 Magic Moment
© Magic Moment 2021 © Magic Moment 2021 自己紹介とサービス概要 2
© Magic Moment 2021 自己紹介とサービス概要 3 大塚 将平 (Shohei Otsuka)
株式会社Magic Momentでプロダクトと外部サービ スとの連携部分を主に担当するバックエンドエンジ ニアです。 趣味は飲み歩き(最近は浅草で飲むのが好き)
© Magic Moment 2021 自己紹介とサービス概要 4 営業組織の出力を最大化する Magic Moment Playbook
営業活動量を圧倒的に増やし、 全ての営業活動から優れた顧客体験を生み出す セールスオペレーションクラウド 最適な営業オペレーションを組織に実装し 大量行動が可能になる仕組みを提供する SaaS を提供
© Magic Moment 2021 外部サービスとの連携 5
© Magic Moment 2021 メール連携機能開発の思い出 6 • 返信メールの紐づけ • エラーハンドリング
© Magic Moment 2021 © Magic Moment 2021 返信メールの紐づけ 7
© Magic Moment 2021 思い出 〜返信〜 8 GET /messages それぞれの関連性を知りたい
© Magic Moment 2021 思い出 〜返信〜 9 Mail_A Mail_B Mail_C
Message-ID: <Mail_A> Message-ID: <Mail_B> In-Reply-To: <Mail_A> References: <Mail_A> Message-ID: <Mail_C> In-Reply-To: <Mail_B> References: <Mail_A><Mail_B> 返信 返信
© Magic Moment 2021 思い出 〜返信〜 10 • メールの件名が同じである •
Referencesヘッダーが、スレッド内 の以前のMail IDを参照している、また は同じMail IDを一貫して参照している Gmail公式によると...
© Magic Moment 2021 思い出 〜返信〜 11 仕様どうしよう.... (ダジャレ)
© Magic Moment 2021 思い出 〜返信〜 12 • メールサーバを開発しているわけではない •
Gmail, Outlookと連携しているだけ • API経由で返信情報を取得できるはず
© Magic Moment 2021 思い出 〜返信〜 13 APIで取得できた。
© Magic Moment 2021 学んだこと 〜返信〜 14 • まずはAPIで取得する方法を調べよう •
公式ドキュメントはちゃんと読もう
© Magic Moment 2021 © Magic Moment 2021 エラーハンドリング 15
© Magic Moment 2021 思い出 〜エラーハンドリング〜 16 エラーハンドリング難しい • 一時的なエラーは再試行したい
◦ 429エラー, 5xx系エラー • 回避可能なエラーは回避したい ◦ 返信対象のメールを削除した → 新規メールとして送信 • 回避不可能なエラーは連携解除したい ◦ ユーザーが削除された HTTP Status Codeだけで単純に判断できない
© Magic Moment 2021 思い出 〜エラーハンドリング〜 17 前回の学びからドキュメントをちゃんと読んだ { "error":
{ "code": "badRequest", "message": "Uploaded fragment overlaps with existing data.", "innerError": { "code": "invalidRange", "request-id": "request-id", "date": "date-time" } } }
© Magic Moment 2021 思い出 〜エラーハンドリング〜 18 知らないエラーコードが返ってきた • MailboxNotEnabledForRESTAPI
• SyncStateNotFound • ErrorInvalidIdMalformed • etc… 一個ずつググるとどんなエラーか調べることはできるが、一覧で見れるページがない!
© Magic Moment 2021 思い出 〜エラーハンドリング〜 19 Error情報を永続化した
© Magic Moment 2021 学んだこと 〜エラーハンドリング〜 20 • 公式ドキュメントも完璧ではない! •
実際にAPIを叩くんだ!
© Magic Moment 2021 学んだこと 21 • 公式ドキュメントをちゃんと読もう! • 実際にAPIを叩いて確かめる!
© Magic Moment 2021 THANK YOU © Magic Moment 2021
22
© Magic Moment 2021 We are hiring! © Magic Moment
2021 23 https://www.magicmoment.jp/recruit