Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"The current user has insufficient permissions to perform the requested operation.” - Google Play Developer API

I am having trouble calling the Google Play Developer API.

I have followed all steps listed on https://developers.google.com/android-publisher/authorization . This includes

  1. Create Project and enabled Google Play Android Developer API (with my Google Play Console Account)
  2. Link the project through Settings > Developer Account > API Access
  3. Grant access to service account with finance permissions to the app through the Google Play Console.
  4. Create OAuth 2.0 Client Id, Client Secret, and Redirect URI credentials.
  5. Generate the Refresh Token and the Access Token by sending POST request.

Then, to call the purchases.subscriptions.get API, I used the following CURL command:

(https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/get)

curl -X GET "https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}" -H "Authorization: Bearer {access_token}" -H "Accept: application/json" --compressed

However, I am receiving the following error:

"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"
      }
    ]
  }
}

I have read and implemented changes recommended in other posts such as

  1. added in-app product/subscription before granting permission or linking to service account
  2. opened "in-app products/subscription" and performed some updates
  3. Verified all Users and Permissions through Google Play Console
    • eg. service account is admin user
  4. waited over 48 hours to allow Google to propagate all access rights for APIs.

I have also tried calling the API through https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/get#authorization-scopes but still no luck (get an error).

If anyone has any suggestions, that would be very much appreciated. Thanks.

like image 733
vicki Avatar asked Nov 09 '20 15:11

vicki


1 Answers

I faced a similar issue, the problem is in the settings we do in google developer project.

Refer to create-play-service-credentials for settings. Use the same primary account with which you created your in-app products.

Make sure you remove the previous one.

Link to a Google Developer Project Your Play Developer account needs to be linked to a Google Developer Project.

1a. Open the Settings > Developer account menus and select API access

API-access

1b. Select Link to connect your Play account to a Google Developer Project

choose-project-link

1c. Agree to the terms and conditions

agree-terms-conditions

2. Create Service Account Next we need to create a service account. This is done from the Google API Console.

2a. Select Create Service Account

create-service-account

2b. Create Service account key credentials

service-account

2c. Enter details for service account

enter-service-account-details

2d. Download your JSON credential: json-credentials

3. Grant Access

3a. In Play Console, select Grant Access on the newly created service account

grant-access

3b. Grant the following permissions:

apply-permissions

3c.Click Invite User at the bottom and send the invite

send-invite

You will be redirected to Users and Permissions where you should see your newly created service account as Active.

like image 195
Ankit Jindal Avatar answered Oct 02 '22 14:10

Ankit Jindal