SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Zendesk Help Center APIで
Zendesk GuideのArticleの一覧性改善
髙橋達
Treasure Data, Inc.
Zenlab vol.4 API Night
2018-06-18
Who AM I ?
プロフィール
- 髙橋 達 (Takahashi Toru)
- Treasure Data, Inc.
- Support Engineering Manager
- Twitter: @nora96o
- Github: toru-takahashi
- Blog: http://blog.torut.tokyo/
Treasure Data Technical Support Team
- JP 3 / US 1 / Korea 1 / Uganda 1
Zendesk Guideを使ってますか?
もしかして、デフォルトのデザインのまま?
「Articles in this section」のコレジャナイ感
ドキュメントで大事なことの一つ
ref. https://readme.readme.io/docs/
ドキュメントで大事なことの一つ
→ 全体の中で自分がどこにいるのかを簡単に把握できること
ref. https://readme.readme.io/docs/
Zendesk Guide上で実現したいこと
Category → Section → Article の一覧メニューを出したい
Zendesk Guideのレイアウトを変更する
- APIを考える前に、Help Center Templatesで実現可能かを確認
- https://developer.zendesk.com/apps/docs/help-center-templates/introduction
例:
<div class="article-body">
{{article.body}}
</div>
が、全Category/Section/Articleは出してくれる、
そんなTemplate機能なんてものはなかった。。。
Zendesk Help Center APIでできそう
https://developer.zendesk.com/rest_api/docs/help_center/introduction
Zendesk Guideのscript.js / .hbsに埋め込むことで
ページ表示時にJavascriptの実行が可能
Zendesk Help Center APIを使って
Category → Section → Article の一覧メニューが出せる!
Ref. Zendesk Guideでカテゴリ内のArticle一覧を左メニューに出力するようにカスタマイズする
Zendesk Guide上で
Zendesk Help Center APIを使った時に困ったこと
現在のCategory/Section/ArticleのIDを取得したい
問題
- URLをパースして取得すると、Article IDしかわからない。
- Category / SectionのID / 名前 / URL の三つを取得するには、
API実行が必要
対応
- page_pathのlinkを参照することで現在のcategory / section / articleを取得可能
Help Center APIで毎回全一覧取得をすると時間がかかる
問題
- Category / Section / Articleが増えた時に全一覧取得にそこそこ時間がかかる
対策
- レスポンスのキャッシュ化対応が有効
- ユーザの訪問の滞在時間を考慮してキャッシュ生存期間を考える
対応
- jQueryのajaxのレスポンスをlocalstorageにキャッシュするライブラリを利用
- https://github.com/SaneMethod/jquery-ajax-localstorage-cache
SectionがDraftかどうかの判別つかない
問題
- Draft機能でSectionなどの非表示ができる。しかし、HelpCenter APIのSections
APIにはdraftのパラメータがない…
- Ref. https://developer.zendesk.com/rest_api/docs/help_center/sections
対応
- ?include=translationsをつけることでTranslationのAPIレスポンスを付与させること
でdraftの取得が可能
- Ref. How can I distinguish categories in draft mode with the API?
Zendesk Guideの権限周りが色々ややこしい
問題
- Anonymous / Signed-in User / Permissionなどの考慮をCategory / Section
で考える必要がある
- AnonymousでもZendesk Guide内のJSでは、Admin権限でデータを取得
してくるので、見せるべきではないコンテンツのタイトルを見せることができ
てしまう
対応
- 現状は、権限を考慮せず、Anonymousで見える範囲だけを一覧表示
- 本当はユーザ毎に考慮したいが、ロジックを考えるのが大変なので…
まとめ
- Zendesk Help Center Templatesの範囲外でZendesk Help Centerのデザイン拡
張をしようとすると、茨の道感があるので覚悟が必要です。
- Zendesk Guideの機能拡充をまってます

Weitere ähnliche Inhalte

Ähnlich wie Zenlab - API Night

Html5でword pressテーマを作るよ!
Html5でword pressテーマを作るよ!Html5でword pressテーマを作るよ!
Html5でword pressテーマを作るよ!Muyuu Fujita
 
最近作ったもの
最近作ったもの最近作ったもの
最近作ったものonozaty
 
Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方Tadayoshi Sato
 
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』Insight Technology, Inc.
 
ZendeskのTriggerを有効活用するためにデータを一元化している話
ZendeskのTriggerを有効活用するためにデータを一元化している話ZendeskのTriggerを有効活用するためにデータを一元化している話
ZendeskのTriggerを有効活用するためにデータを一元化している話Toru Takahashi
 
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptxチームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptxRakuten Commerce Tech (Rakuten Group, Inc.)
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
BASEのアーキテクチャを育てる - 20221213 BASE Tech TalkBASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
BASEのアーキテクチャを育てる - 20221213 BASE Tech TalkTadashi Matsuda
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組みTakayuki Shimizukawa
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかEtsuji Nakai
 
LightSwitchでマルチデータソース
LightSwitchでマルチデータソースLightSwitchでマルチデータソース
LightSwitchでマルチデータソースYoshitaka Seo
 
Tech circle#2 Vagrant+Docker handson
Tech circle#2 Vagrant+Docker handsonTech circle#2 Vagrant+Docker handson
Tech circle#2 Vagrant+Docker handsonDaisuke Ikeda
 
「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会Yu Ishikawa
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Shingo Furuyama
 
Essential refactoring for scala with idea
Essential refactoring for scala with ideaEssential refactoring for scala with idea
Essential refactoring for scala with ideaRyuhei Ishibashi
 
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発SFDG ROOKIES
 
第5回oss運用管理勉強会 zabbix徹底活用術の紹介
第5回oss運用管理勉強会 zabbix徹底活用術の紹介第5回oss運用管理勉強会 zabbix徹底活用術の紹介
第5回oss運用管理勉強会 zabbix徹底活用術の紹介Daisuke Ikeda
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうTomomitsuKusaba
 
2010/12/16 FxUG Robotlegsの発表資料
2010/12/16 FxUG Robotlegsの発表資料2010/12/16 FxUG Robotlegsの発表資料
2010/12/16 FxUG Robotlegsの発表資料豊 満石
 
LaravelとNuxt.jsを業務で取り入れる際に得た知見
LaravelとNuxt.jsを業務で取り入れる際に得た知見LaravelとNuxt.jsを業務で取り入れる際に得た知見
LaravelとNuxt.jsを業務で取り入れる際に得た知見ssuserb6dacf
 

Ähnlich wie Zenlab - API Night (20)

Html5でword pressテーマを作るよ!
Html5でword pressテーマを作るよ!Html5でword pressテーマを作るよ!
Html5でword pressテーマを作るよ!
 
最近作ったもの
最近作ったもの最近作ったもの
最近作ったもの
 
Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方
 
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
 
ZendeskのTriggerを有効活用するためにデータを一元化している話
ZendeskのTriggerを有効活用するためにデータを一元化している話ZendeskのTriggerを有効活用するためにデータを一元化している話
ZendeskのTriggerを有効活用するためにデータを一元化している話
 
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptxチームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
BASEのアーキテクチャを育てる - 20221213 BASE Tech TalkBASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
LightSwitchでマルチデータソース
LightSwitchでマルチデータソースLightSwitchでマルチデータソース
LightSwitchでマルチデータソース
 
Tech circle#2 Vagrant+Docker handson
Tech circle#2 Vagrant+Docker handsonTech circle#2 Vagrant+Docker handson
Tech circle#2 Vagrant+Docker handson
 
「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
 
Essential refactoring for scala with idea
Essential refactoring for scala with ideaEssential refactoring for scala with idea
Essential refactoring for scala with idea
 
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
 
第5回oss運用管理勉強会 zabbix徹底活用術の紹介
第5回oss運用管理勉強会 zabbix徹底活用術の紹介第5回oss運用管理勉強会 zabbix徹底活用術の紹介
第5回oss運用管理勉強会 zabbix徹底活用術の紹介
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼう
 
2010/12/16 FxUG Robotlegsの発表資料
2010/12/16 FxUG Robotlegsの発表資料2010/12/16 FxUG Robotlegsの発表資料
2010/12/16 FxUG Robotlegsの発表資料
 
LaravelとNuxt.jsを業務で取り入れる際に得た知見
LaravelとNuxt.jsを業務で取り入れる際に得た知見LaravelとNuxt.jsを業務で取り入れる際に得た知見
LaravelとNuxt.jsを業務で取り入れる際に得た知見
 

Mehr von Toru Takahashi

Learn from Case Study; How do people run query on Trino? / Trino japan virtua...
Learn from Case Study; How do people run query on Trino? / Trino japan virtua...Learn from Case Study; How do people run query on Trino? / Trino japan virtua...
Learn from Case Study; How do people run query on Trino? / Trino japan virtua...Toru Takahashi
 
高専後10年の学び - 高専カンファレンス In 仙台
高専後10年の学び - 高専カンファレンス In 仙台高専後10年の学び - 高専カンファレンス In 仙台
高専後10年の学び - 高専カンファレンス In 仙台Toru Takahashi
 
TokyoGirls.rb meetup vol.1 SponsorLT
TokyoGirls.rb meetup vol.1 SponsorLTTokyoGirls.rb meetup vol.1 SponsorLT
TokyoGirls.rb meetup vol.1 SponsorLTToru Takahashi
 
Zendesk Sunshine - Zenlab vol.6
Zendesk Sunshine - Zenlab vol.6Zendesk Sunshine - Zenlab vol.6
Zendesk Sunshine - Zenlab vol.6Toru Takahashi
 
History of TreasureData Support
History of TreasureData SupportHistory of TreasureData Support
History of TreasureData SupportToru Takahashi
 
Dairy of Support Engineering Manager
Dairy of Support Engineering ManagerDairy of Support Engineering Manager
Dairy of Support Engineering ManagerToru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
IoT Data Connector Fluent Bit
IoT Data Connector Fluent BitIoT Data Connector Fluent Bit
IoT Data Connector Fluent BitToru Takahashi
 
ビッグデータ分析基盤を支えるOSSたち
ビッグデータ分析基盤を支えるOSSたちビッグデータ分析基盤を支えるOSSたち
ビッグデータ分析基盤を支えるOSSたちToru Takahashi
 
(Draft) lambda architecture by using TreasureData
(Draft) lambda architecture by using TreasureData(Draft) lambda architecture by using TreasureData
(Draft) lambda architecture by using TreasureDataToru Takahashi
 

Mehr von Toru Takahashi (10)

Learn from Case Study; How do people run query on Trino? / Trino japan virtua...
Learn from Case Study; How do people run query on Trino? / Trino japan virtua...Learn from Case Study; How do people run query on Trino? / Trino japan virtua...
Learn from Case Study; How do people run query on Trino? / Trino japan virtua...
 
高専後10年の学び - 高専カンファレンス In 仙台
高専後10年の学び - 高専カンファレンス In 仙台高専後10年の学び - 高専カンファレンス In 仙台
高専後10年の学び - 高専カンファレンス In 仙台
 
TokyoGirls.rb meetup vol.1 SponsorLT
TokyoGirls.rb meetup vol.1 SponsorLTTokyoGirls.rb meetup vol.1 SponsorLT
TokyoGirls.rb meetup vol.1 SponsorLT
 
Zendesk Sunshine - Zenlab vol.6
Zendesk Sunshine - Zenlab vol.6Zendesk Sunshine - Zenlab vol.6
Zendesk Sunshine - Zenlab vol.6
 
History of TreasureData Support
History of TreasureData SupportHistory of TreasureData Support
History of TreasureData Support
 
Dairy of Support Engineering Manager
Dairy of Support Engineering ManagerDairy of Support Engineering Manager
Dairy of Support Engineering Manager
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
IoT Data Connector Fluent Bit
IoT Data Connector Fluent BitIoT Data Connector Fluent Bit
IoT Data Connector Fluent Bit
 
ビッグデータ分析基盤を支えるOSSたち
ビッグデータ分析基盤を支えるOSSたちビッグデータ分析基盤を支えるOSSたち
ビッグデータ分析基盤を支えるOSSたち
 
(Draft) lambda architecture by using TreasureData
(Draft) lambda architecture by using TreasureData(Draft) lambda architecture by using TreasureData
(Draft) lambda architecture by using TreasureData
 

Zenlab - API Night