# 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.
        "kind": "games#achievementIncrementResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementIncrementResponse.
        "newlyUnlocked": True or False, # Whether the current steps for the achievement has reached the number of steps required to unlock.
      }

`list(playerId, language=None, maxResults=None, pageToken=None, state=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.
      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.
      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.

    Returns:
      An object of the form:

        { # This is a JSON template for a list of achievement objects.
        "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.
            "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#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.
          },
        ],
        "kind": "games#playerAchievementListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerAchievementListResponse.
        "nextPageToken": "A String", # Token corresponding to the next page of results.
      }

`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
        "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.
        "kind": "games#achievementRevealResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementRevealResponse.
      }

`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.
        "kind": "games#achievementSetStepsAtLeastResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementSetStepsAtLeastResponse.
        "newlyUnlocked": True or False, # Whether the the current steps for the achievement has reached the number of steps required to unlock.
      }

`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
        "kind": "games#achievementUnlockResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUnlockResponse.
        "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).
      }

`updateMultiple(body=None)`

    Updates multiple achievements for the currently authenticated player.

    Args:
      body: object, The request body.
        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.
            "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.
              "requestId": "A String", # The requestId associated with an increment to an achievement.
              "steps": 42, # The number of steps to be incremented.
            },
            "kind": "games#achievementUpdateRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateRequest.
            "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.
          },
        ],
      }

    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#achievementUpdateMultipleResponse.
        "updatedAchievements": [ # The updated state of the achievements.
          { # This is a JSON template for an achievement update response.
            "achievementId": "A String", # The achievement this update is was applied to.
            "currentState": "A String", # The current state of the achievement.
                # Possible values are:
                # - "HIDDEN" - Achievement is hidden.
                # - "REVEALED" - Achievement is revealed.
                # - "UNLOCKED" - Achievement is unlocked.
            "currentSteps": 42, # The current steps recorded for this achievement if it is incremental.
            "kind": "games#achievementUpdateResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateResponse.
            "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.
          },
        ],
      }