概要

ZoteroのAPIとStreamlitを使ったアプリを試作しました。

https://nakamura196-zotero.streamlit.app/

本記事は、このアプリ開発におけるメモです。

Streamlit

以下の記事がとても参考になりました。

https://qiita.com/sypn/items/80962d84126be4092d3c

ZoteroのAPI

ZoteroのAPIについて、以下で説明されています。

https://www.zotero.org/support/dev/web_api/v3/start

今回は上記のページで紹介されている以下のライブラリを使用しました。

https://github.com/urschrei/pyzotero

APIの利用にあたっては、personal library IDAPI keyを取得する必要がありますが、READMEのQuickstartの手順に従うと、それらを取得することができました。

以下は、API keyを発行した際の画面です。

Streamlitを用いた開発

以下のリポジトリでソースコードを公開しています。

https://github.com/nakamura196/zotero_streamlit

機密情報

機密情報は、/.streamlit/secrets.tomlというファイルを作成し、そこに記載するようでした。.gitignoreに記載することも忘れないようにしてください。

[llaziipobbitrr_eaakrrreoyyy]__=it"dyx=px"exx="x"xu"ser"

そして、以下のように呼び出すことができました。

defillarniipeibbittrr_u_aakrzrrenoyyyt__zeit=ordytopse(=etr).o:s=s.teZ.scostrte.eecstrresoec[(tr"lsezi[tob"strz[eao"rrtzoyeo"_rt]ioe[d"r",]oa["pl"]iil[_bi"krbleariyrab"yrr]_yat_ryiypd_e"t,]ypaep"i]_key)

Zoteroライブラリのコレクション一覧の取得

以下ので、Zoteroライブラリからコレクションの一覧を取得することができました。

deff"c#cre"ooet"lltclluhZeer_occnctttoeiiclrooolonnles_lclet=icistoztinoost=n(._zc[looI{itlD"s)lnt:eacmtei"o:nsc(o)l"l"e"ction['data']['name'],"key":collection['data']['key']}forcollectionincollections]

コレクション内のアイテムの取得

以下でコレクション内のアイテムを取得できました。itemTypeattachmentのものはスキップする処理を加えています。

#defciterfrxeycan:eDtorir}rpsraetetoettet_tewft.tadcumsouEeuFfors'"""rrxrrr(ln=ticdncrnazl=itraieomoep[teettpprpetcdz{lmaeedt(d,t.oeTt"m.if.iDt'yo:Do"Dcoa.:prianFaontcesintatl_aoi""taaialiFlt::eiFslFedrlemtrerc:aemi"[eaedatmc[t,'mm:miet'edseteo(idm"a(o(n)oa[.tir)_nt'jafoli_ado'wodi'ai]isa)t]tn.t)d:e[a(gem''femist]"t[t(i[{('ect'c'dmolirdasleteatl'eatafe]mte'rc,To']otyr,[mip['oe'"icn'f"to_]i)eli,rmldsTe)tycNptaeim'oe]n':]!}={e{"}ca"rt)etaatcohrm[e'nlta"s]tName']}"forcreatorinitem['data'].get('creators',[])),

メタタグ設定

以下のような形で、タイトルなどのページ設定を行うことができました。

#st.sepp##m}taae_gglinpeeanua__yi_'''gtiotiGRAeicuiteeb_totaetpocln=lmouoe="_sHrtn="ws=et'f"🧊ii{l:iZ"ddpago,ee'"(t"b:bAe,auprr"gpo_h'st:dxtteap'vStshete:tlr=/toe"/ppaegsmmxi:elpt/niah/tt#nug"d#biu,e.ts#dchi"oun#,mbg/.nc[#aoZkmatmneuarrkoaa]1m(9uh6rt/atz1po9st6:e//rzow_twsewtr.roze_oastmtelrrieota./mo"lr,igti'sssuAePsI',andStreamlit"

デプロイ

開発中の画面の右上の「Deploy」ボタンから、Streamlit Community Cloudに簡単にデプロイできました。

その際、Advanced settingsにおいて、/.streamlit/secrets.tomlに記載した情報を追加することで、サーバ上でも機密情報を利用することができました。

まとめ

Streamlitを使うことで、Webアプリを簡単に作成することができました。

Zotero APIの利用など、参考になりましたら幸いです。