投稿日:2022-11-23 Wed
最近ブログを更新してないので大分間があいてしまいました。さて本日の話題は、Cloud Functionsで作ったAPIへUnityでアクセスしてみたら、permissionエラーになってしまったというお話。
Unityで何回アクセスしても「ProtocolError」になってしまう。他のAPIは問題なし。
もう5年くらいは、CloudFunctionsのお世話になってる訳なのですが、初体験です。
試しにURLをブラウザ上で直接叩いてみましたが、他のAPIは「BadRequest」と表示されOK!。色々セキュリティプログラムがが入ってるので、ちゃんとプログラムを通ってます。
でも新しく作ったAPIは、「Error: Forbidden Your client does not have permission to get URL /作ったAPI from this server.」と表示されている。
明らかに挙動が違います。
ひょっとするとCloud Functionsをデプロイし直せば動くようになるかもしれませんが、Googleコンソールで修正したのでメモ代わりに載せておきます。
まずはブラウザ上でGoogleコンソールのCloudFunctions項目をいじる必要があります。
FireBaseコンソールからGoogleコンソールに行ってCloudFunctions項目までの行き方は、前回のブログ
「Cloud Functionsのプログラムソースをサーバーからもってくる方法」と同じです。
CloudFunctionsのページを見ると、問題のAPIだけ「Authentication」項目のところに「未認証を許可」が表示されていません。どうやらこれが原因のようです。

https://admin.blog.fc2.com/control.php?mode=control&process=upload&insert=body#
ここを修正していきます。

問題のAPIのチェックボックスをオンにして、権限ボタンを押します。

現れたメニューの「プリンシバルを追加」を押します。

新しいプリンシバルに「allUsers」
ロールに「Cloud Functions 起動元」
を追加して保存ボタンを押します。
う〜ん、普通にデプロイしただけなのに、なぜこうなったのだろう。
△ PAGE UP