# Google Play Game Services API . achievements

## Instance Methods

Increments the steps of the achievement with the given ID for the currently authenticated player.

Lists the progress for all your application's achievements for the currently authenticated player.

Retrieves the next page of results.

Sets the state of the achievement with the given ID to REVEALED for the currently authenticated player.

Sets the steps for the currently authenticated player towards unlocking an achievement. If the steps parameter is less than the current number of steps that the player already gained for the achievement, the achievement is not modified.

Unlocks this achievement for the currently authenticated player.

Updates multiple achievements for the currently authenticated player.

### Method Details

`increment(achievementId, stepsToIncrement, requestId=None)`

    Increments the steps of the achievement with the given ID for the currently authenticated player.

    Args:
      achievementId: string, The ID of the achievement used by this method. (required)
      stepsToIncrement: integer, The number of steps to increment. (required)
      requestId: string, A randomly generated numeric ID for each request specified by the caller. This number is used at the server to ensure that the request is handled correctly across retries.

    Returns:
      An object of the form:

        { # This is a JSON template for an achievement increment response
        "currentSteps": 42, # The current steps recorded for this incremental achievement.
        "newlyUnlocked": True or False, # Whether the current steps for the achievement has reached the number of steps required to unlock.
        "kind": "games#achievementIncrementResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementIncrementResponse.
      }

`list(playerId, language=None, pageToken=None, state=None, maxResults=None)`

    Lists the progress for all your application's achievements for the currently authenticated player.

    Args:
      playerId: string, A player ID. A value of me may be used in place of the authenticated player's ID. (required)
      language: string, The preferred language to use for strings returned by this method.
      pageToken: string, The token returned by the previous request.
      state: string, Tells the server to return only achievements with the specified state. If this parameter isn't specified, all achievements are returned.
        Allowed values
          ALL - List all achievements. This is the default.
          HIDDEN - List only hidden achievements.
          REVEALED - List only revealed achievements.
          UNLOCKED - List only unlocked achievements.
      maxResults: integer, The maximum number of achievement resources to return in the response, used for paging. For any response, the actual number of achievement resources returned may be less than the specified maxResults.

    Returns:
      An object of the form:

        { # This is a JSON template for a list of achievement objects.
        "nextPageToken": "A String", # Token corresponding to the next page of results.
        "items": [ # The achievements.
          { # This is a JSON template for an achievement object.
            "achievementState": "A String", # The state of the achievement.
                # Possible values are:
                # - "HIDDEN" - Achievement is hidden.
                # - "REVEALED" - Achievement is revealed.
                # - "UNLOCKED" - Achievement is unlocked.
            "kind": "games#playerAchievement", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerAchievement.
            "lastUpdatedTimestamp": "A String", # The timestamp of the last modification to this achievement's state.
            "currentSteps": 42, # The current steps for an incremental achievement.
            "experiencePoints": "A String", # Experience points earned for the achievement. This field is absent for achievements that have not yet been unlocked and 0 for achievements that have been unlocked by testers but that are unpublished.
            "formattedCurrentStepsString": "A String", # The current steps for an incremental achievement as a string.
            "id": "A String", # The ID of the achievement.
          },
        ],
        "kind": "games#playerAchievementListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerAchievementListResponse.
      }

`list_next(previous_request, previous_response)`

    Retrieves the next page of results.

    Args:
      previous_request: The request for the previous page. (required)
      previous_response: The response from the request for the previous page. (required)

    Returns:
      A request object that you can call 'execute()' on to request the next
      page. Returns None if there are no more items in the collection.

`reveal(achievementId)`

    Sets the state of the achievement with the given ID to REVEALED for the currently authenticated player.

    Args:
      achievementId: string, The ID of the achievement used by this method. (required)

    Returns:
      An object of the form:

        { # This is a JSON template for an achievement reveal response
        "kind": "games#achievementRevealResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementRevealResponse.
        "currentState": "A String", # The current state of the achievement for which a reveal was attempted. This might be UNLOCKED if the achievement was already unlocked.
            # Possible values are:
            # - "REVEALED" - Achievement is revealed.
            # - "UNLOCKED" - Achievement is unlocked.
      }

`setStepsAtLeast(achievementId, steps)`

    Sets the steps for the currently authenticated player towards unlocking an achievement. If the steps parameter is less than the current number of steps that the player already gained for the achievement, the achievement is not modified.

    Args:
      achievementId: string, The ID of the achievement used by this method. (required)
      steps: integer, The minimum value to set the steps to. (required)

    Returns:
      An object of the form:

        { # This is a JSON template for an achievement set steps at least response.
        "currentSteps": 42, # The current steps recorded for this incremental achievement.
        "newlyUnlocked": True or False, # Whether the the current steps for the achievement has reached the number of steps required to unlock.
        "kind": "games#achievementSetStepsAtLeastResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementSetStepsAtLeastResponse.
      }

`unlock(achievementId)`

    Unlocks this achievement for the currently authenticated player.

    Args:
      achievementId: string, The ID of the achievement used by this method. (required)

    Returns:
      An object of the form:

        { # This is a JSON template for an achievement unlock response
        "newlyUnlocked": True or False, # Whether this achievement was newly unlocked (that is, whether the unlock request for the achievement was the first for the player).
        "kind": "games#achievementUnlockResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUnlockResponse.
      }

`updateMultiple(body)`

    Updates multiple achievements for the currently authenticated player.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # This is a JSON template for a list of achievement update requests.
        "kind": "games#achievementUpdateMultipleRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateMultipleRequest.
        "updates": [ # The individual achievement update requests.
          { # This is a JSON template for a request to update an achievement.
            "setStepsAtLeastPayload": { # This is a JSON template for the payload to request to increment an achievement. # The payload if an update of type SET_STEPS_AT_LEAST was requested for the achievement.
              "kind": "games#GamesAchievementSetStepsAtLeast", # Uniquely identifies the type of this resource. Value is always the fixed string games#GamesAchievementSetStepsAtLeast.
              "steps": 42, # The minimum number of steps for the achievement to be set to.
            },
            "updateType": "A String", # The type of update being applied.
                # Possible values are:
                # - "REVEAL" - Achievement is revealed.
                # - "UNLOCK" - Achievement is unlocked.
                # - "INCREMENT" - Achievement is incremented.
                # - "SET_STEPS_AT_LEAST" - Achievement progress is set to at least the passed value.
            "kind": "games#achievementUpdateRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateRequest.
            "achievementId": "A String", # The achievement this update is being applied to.
            "incrementPayload": { # This is a JSON template for the payload to request to increment an achievement. # The payload if an update of type INCREMENT was requested for the achievement.
              "kind": "games#GamesAchievementIncrement", # Uniquely identifies the type of this resource. Value is always the fixed string games#GamesAchievementIncrement.
              "steps": 42, # The number of steps to be incremented.
              "requestId": "A String", # The requestId associated with an increment to an achievement.
            },
          },
        ],
      }

    Returns:
      An object of the form:

        { # This is a JSON template for an achievement unlock response.
        "kind": "games#achievementUpdateMultipleResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateListResponse.
        "updatedAchievements": [ # The updated state of the achievements.
          { # This is a JSON template for an achievement update response.
            "kind": "games#achievementUpdateResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateResponse.
            "achievementId": "A String", # The achievement this update is was applied to.
            "currentSteps": 42, # The current steps recorded for this achievement if it is incremental.
            "newlyUnlocked": True or False, # Whether this achievement was newly unlocked (that is, whether the unlock request for the achievement was the first for the player).
            "updateOccurred": True or False, # Whether the requested updates actually affected the achievement.
            "currentState": "A String", # The current state of the achievement.
                # Possible values are:
                # - "HIDDEN" - Achievement is hidden.
                # - "REVEALED" - Achievement is revealed.
                # - "UNLOCKED" - Achievement is unlocked.
          },
        ],
      }