RSS公開の廃止に対応!GoogleスプレッドシートでRSSのURLやワークシートIDを取得する方法

Google spread sheetで仕様変更があったようで、これまでのRSS公開→三桁のワークシートIDを取得していた方法が使えなくなりハマったので解決策をメモしておきます。

これまではAPIでワークシートの内容を取得する際に、RSS公開で表示されたURL内からワークシートIDが取得できてそれを利用していたのですが、2015年1月に仕様変更があったらしくRSS公開がメニューから廃止されてしまい取得することができなくなってしまいました。

解決策は、以下のURLにアクセスすることでワークシートの一覧をXML形式で取得できるので、その中から当該ワークシートのIDを探せばOKです。

https://spreadsheets.google.com/feeds/worksheets/【スプレッドシートID】/public/basic

これをブラウザのアドレスバーに入れてアクセスするとスプレッドシートに所属するワークシートの一覧を取得することができるので、表示されたxmlの中から「https://spreadsheets.google.com/feeds/list/」を検索して続く文字列を拾っていけば、

https://spreadsheets.google.com/feeds/list/【スプレッドシートID】/【ワークシートID】/public/basic

のような形式になっているのでワークシートIDの部分を取得できるというわけです。

注意したいのが、これまで「od6」のように3ケタ英数でワークシートIDは表示されていましたが、仕様変更後は7ケタの英数になったようです(7ケタに限らないかもしれませんが私の場合はそれで表示されました)。

また、検索したこのURLにアクセスすれば以前のRSS公開のような情報を取得できますし、listの部分をcellsに変更すればセルの内容を取得できます。

念の為に解説しておきますが、【スプレッドシートID】のところにはあなたが取得したいワークシートの所属しているスプレッドシートのIDを入れてください。

スプレッドシートIDとは、スプレッドシートを開いた時のアドレスバーの/d/から/edit#~の間の大文字小文字の英数で構成された文字列のことです。

//これはサンプルなので適当な文字列です。
https://docs.google.com/spreadsheets/d/1bZYlnCNFnz32TNpfLs3dcYDG1XjYeCT6THnl7EomNwM/edit#gid=1675304868

おそらく以前のRSS公開→ワークシートID取得の方法を採用されていた方は私の他にも多いと思うので、そういった方の参考になれば幸いです。