見出し画像

新しく作ったGASでfreee api の認証が通らなくなった


これまでの freee api の利用方法

 freee アプリストアで見つけたこのスプレッドシートを改造して GASでfreeeへ取引登録をしていました。(今は検索しても見つけられないので、作者さんが非公開にしてしまったのでしょうか。ありがたく使わせていただいており作者さんには非常に感謝)
 認証の仕組みについては細かいところまで理解せず使っているので、今回エラーが出て認証が通らなくなったことの解決に時間がかかりました。

freee アプリストアの小さな違和感


アプリ登録画面

 これまで通りfreee アプリストアから登録して設定をしていたところ、小さな違和感がありました。
 ”Client IDが短い”
 今までは下のClient Secretと同程度の長さだったのが、かなり短くなっているのです。とはいえ仕様変更したのだなという感想しか出てきませんでした。

認証が通らない

 今まで作っていたGASを少し改造しただけのアプリを設定し、freeeの認証をしたところ通らなくなっていたのです。
  上でも記述した通り認証に関してはよくわかっていないので、これまでのコードを変えることは一切していません。
 しかし、これまでのアプリは問題なく認証も通って、取引登録もできているので何が違うのかわからず、非常に困ってしまったという状態になりました。

 解決方法

一晩いろいろ試しながら考えたところ、やはり違和感のあった”Client ID”が短いというのが原因でした。
 正確にいうと短くなったことではなく、数字しか入っていないことが原因です。
数字しかないことで、セルから読み取った”Client IDが数字”として認識され、認証時のJSONデータも数字として投げ込まれており、認証が通りませんでした。
これの解決方法はセルの書式を自動ではなく書式なしテキストへ替えることで、解決できました。

書式変更しよう

 今回の事案から学んだこと

 GASでJSONを投げる場合の書式には注意しよう

実は従前に別のクラウドサービスでもバージョンアップでこれまで機能していたアプリが変な挙動を示すようになったことがありました。
 JSONで数字のやり取りをしていたのですが、バージョンアップで数字だけを受け取ることができなくなり、文字としての数字でないと機能しなくなったのです。
 この経験が無かったら気づけなかったかもしれないと思うと、あの時の苦労が生きたなと感じます。

この記事が気に入ったらサポートをしてみませんか?