【Google】Google Play Developer APIで401エラーが出るパターン
Google Play の developer API を実行した際、401 エラーが発生するケースってありますよね。
主な原因としては、Google のサービスアカウントと Google Play の API 実行をする権限が足りていないこと。
今回は、Google の API で 401 エラーが発生するケースを紹介します。
アクセストークンの権限不足
検証の過程で、Google の Purchase API を叩く際に 401 エラーに遭遇することがありました。
原因はアクセストークンの権限不足と思われます。
{
"error": {
"errors": [
{
"domain": "androidpublisher",
"reason": "permissionDenied",
"message": "The current user has insufficient permissions to perform the requested operation."
}
],
"code": 401,
"message": "The current user has insufficient permissions to perform the requested operation."
}
}
アカウントサービスの権限設定のときに触れましたが、この原因で引っ掛かる人の多くは GooglePlay Console 上でアカウントサービスの API 利用承認していないパターンになります。
利用許可をした記憶がない人は、GooglePlay Console の設定メニューを再度確認してみてください。
ただし、GooglePlay Console 上で承認したにも関わらず 401 エラーが続く場合は、権限の反映に時間がかかっている可能性があります。
実際に私がそうだったのですが、API の利用許可ボタン押下後、数時間経過しても 401 で弾かれ続けました。
その際、以下の情報に行き当たったのですが、そこのコメントにも書かれていた通り、割り切って次の日の朝まで待ってみたら疎通確認ができました。
I think that the cause of the problem is that it is necessary to wait several days before all methods of api starts working correctly. But I not found this in docs.
私は問題の原因はapiのすべての方法が正しく機能し始める前に数日待つ必要があることであると思います。しかし、私はこれをドキュメントで見つけませんでした。
Yeah, you’re right. Just had to wait a couple days.
ええ、その通りです。ほんの数日待たなければなりませんでした。
Getting 401 response in google developer api only when query GET subscriptions
正式な情報がないのでこれが正しいかどうかは何とも言えませんが、とにかく慣れていないと設定周りでは疲弊します・・・。
(だから、この備忘録を書いているわけですが)
検証を進めていく上で、新たな問題や訂正が必要な項目が出てきたら追記していきます。
サービスアカウント連携前に商品情報を設定した
上記とは別に 401 エラーに遭遇するケースも見つかりました。
"error": {
"code": 401,
"message": "The current user has insufficient permissions to perform the requested operation.",
"errors": [
{
"domain": "androidpublisher",
"message": "The current user has insufficient permissions to perform the requested operation.",
"reason": "permissionDenied"
}
]
}
}
このエラーだけだとよくわからないのですが、どうやらサービスアカウントを連携する前に商品情報を設定している場合は、再度商品情報の編集が必要なようです。