

一度は叩けたAPIが叩けなくなり、頭を抱えています。  
解決方法、その他何かご存知の方がおられましたらぜひ御指南願います。

**【環境】**  
Ruby 2.6.3  
Rails 5.2.3  
PostgreSQL 10.9  
mac Mojave 10.14.6  
[Google Cloud Translations
API（v2の無料トライアル）](https://cloud.google.com/translate/?hl=ja)

**【状況】**  
Herokuにデプロイしたアプリに、GoogleのCloud Translation APIを叩く部分があります。

先日、[How to use Google API credentials json on
Heroku?](https://stackoverflow.com/questions/47446480/how-to-use-google-api-
credentials-json-on-
heroku)を発見し、そのまま実行してその際はAPIが叩けたのですが、その翌々日午前中に再度APIを叩いたところ、以下のようなエラーが出ました。

> RuntimeError (Unable to read the credential file specified by
> GOOGLE_APPLICATION_CREDENTIALS: JSON::ParserError):

実際にAPIが叩けた当時は数回APIを叩き、いずれも無事に結果が返ってきていたと思います。（productionのDBにも残っているので、おそらく…。）

１回の文字数は、最大でもこの記事本文の１行目程度です。

APIが叩けた日の翌日は同APIを１度も叩いていません。  
ローカルでは問題ありません。

アプリ作成を進めるために多少コードをいじってはいたものの、JSONはもちろん、APIを叩く関連コードは一切いじっていません。（見た限り）

GoogleのAPIはこれ以外有効化したものはありません。

**【やってみたこと】**  
１：遠隔で相談していた先輩からのアドバイスで、エラーの対象付近に以下を書いてみました

[code]

    rescue ActionDispatch::Http::Parameters::ParseError => exception
    render status: 400, json: { errors: [ exception.message ] }
    
[/code]

これにより、パースエラーの詳細が掴めないか試してみたのですが、renderされずいつものHerokuのエラー画面になり、結局収穫を得られていません。

書く場所が間違っていたのかと、思い当たるところに起きなおしたり、begin endをきちんと追加するなども試しましたが変わらずでした。

２：[Google Auth credentials not retrieved properly on Heroku staging
account](https://stackoverflow.com/questions/36201889/google-auth-credentials-
not-retrieved-properly-on-heroku-staging-
account)を拝見し、一度Herokuの環境変数を削除した上でコマンドで環境変数の追加をしてみましたが、改善できませんでした。

３： `heroku restart -app APP_NAME`でHerokuの再起動を試したのですが、変わらずです。

４：今一度GoogleのCloud Translation
APIのページを読んでみましたが、解決につながるような内容を見つけることはできませんでした。ただ、読み落としや理解不足も考えられます。

５:（2019/10/30加筆）[JSONLint](https://jsonlint.com/)にてJSONの中身も検証し、Valid
JSONと結果を得ました。問題ないようです。

６:（2019/10/30加筆）[Heroku：『heroku
logs』コマンドとLOG_LEVELの設定について](https://tyoshikawa1106.hatenablog.com/entry/2016/04/03/143454)を発見し、試して見ましたがログの内容に変化はなさそうでした。

７：（2019/10/30加筆）[Google Cloud Translation APIの認証優先順位まとめ](https://qiita.com/sh-
ogawa/items/a3fbf4137acf197a6a14)より、クレカ登録済み、API有効は確認済み。同記事内の「閾値を超えていないか」は理解できず、詳しいことが確認できていません。

８:（2019/10/30加筆） `無料トライアルのステータス: 残りは ¥31,852.42 クレジット、280 日です。`
の表示あり、トライアル枠はまだ残っているようです。


CC BY-SA 4.0
2019-10-29T10:36:43.557
60081
2019-10-31T06:23:24.407
2019-10-31T06:23:24.407
36403
36403
question
ruby-on-rails heroku google-translate
Rails 5からCloud Translation APIが叩けなくなった: Unable to read the credential file specified by GOOGLE_APPLICATION_CREDENTIALS: JSON::ParserError