<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.players.html">players</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(playerId, language=None)</a></code></p>
<p class="firstline">Retrieves the Player resource with the given ID. To retrieve the player for the currently authenticated user, set playerId to me.</p>
<p class="toc_element">
  <code><a href="#list">list(collection, pageToken=None, language=None, maxResults=None)</a></code></p>
<p class="firstline">Get the collection of players for the currently authenticated user.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(playerId, language=None)</code>
  <pre>Retrieves the Player resource with the given ID. To retrieve the player for the currently authenticated user, set playerId to me.

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.

Returns:
  An object of the form:

    { # This is a JSON template for a Player resource.
    "originalPlayerId": "A String", # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
    "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
    "displayName": "A String", # The name to display for the player.
    "name": { # An object representation of the individual components of the player's name. For some players, these fields may not be present.
      "givenName": "A String", # The given name of this player. In some places, this is known as the first name.
      "familyName": "A String", # The family name of this player. In some places, this is known as the last name.
    },
    "lastPlayedWith": { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
      "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
      "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
      "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
    },
    "playerId": "A String", # The ID of the player.
    "bannerUrlPortrait": "A String", # The url to the portrait mode player banner image.
    "profileSettings": { # This is a JSON template for profile settings # The player's profile settings. Controls whether or not the player's profile is visible to other players.
      "kind": "games#profileSettings", # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
      "profileVisible": True or False, # The player's current profile visibility. This field is visible to both 1P and 3P APIs.
    },
    "experienceInfo": { # This is a JSON template for 1P/3P metadata about the player's experience. # An object to represent Play Game experience information for the player.
      "lastLevelUpTimestampMillis": "A String", # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
      "currentExperiencePoints": "A String", # The current number of experience points for the player.
      "kind": "games#playerExperienceInfo", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
      "currentLevel": { # This is a JSON template for 1P/3P metadata about a user's level. # The current level of the player.
        "maxExperiencePoints": "A String", # The maximum experience points for this level.
        "kind": "games#playerLevel", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
        "minExperiencePoints": "A String", # The minimum experience points for this level.
        "level": 42, # The level for the user.
      },
      "nextLevel": { # This is a JSON template for 1P/3P metadata about a user's level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
        "maxExperiencePoints": "A String", # The maximum experience points for this level.
        "kind": "games#playerLevel", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
        "minExperiencePoints": "A String", # The minimum experience points for this level.
        "level": 42, # The level for the user.
      },
    },
    "bannerUrlLandscape": "A String", # The url to the landscape mode player banner image.
    "title": "A String", # The player's title rewarded for their game activities.
    "avatarImageUrl": "A String", # The base URL for the image that represents the player.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(collection, pageToken=None, language=None, maxResults=None)</code>
  <pre>Get the collection of players for the currently authenticated user.

Args:
  collection: string, Collection of players being retrieved (required)
    Allowed values
      connected - Retrieve a list of players that are also playing this game in reverse chronological order.
      playedWith - (DEPRECATED: please use played_with!) Retrieve a list of players you have played a multiplayer game (realtime or turn-based) with recently.
      played_with - Retrieve a list of players you have played a multiplayer game (realtime or turn-based) with recently.
      visible - Retrieve a list of players in the user's social graph that are visible to this game.
  pageToken: string, The token returned by the previous request.
  language: string, The preferred language to use for strings returned by this method.
  maxResults: integer, The maximum number of player resources to return in the response, used for paging. For any response, the actual number of player resources returned may be less than the specified maxResults.

Returns:
  An object of the form:

    { # This is a JSON template for a third party player list response.
    "nextPageToken": "A String", # Token corresponding to the next page of results.
    "items": [ # The players.
      { # This is a JSON template for a Player resource.
        "originalPlayerId": "A String", # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
        "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
        "displayName": "A String", # The name to display for the player.
        "name": { # An object representation of the individual components of the player's name. For some players, these fields may not be present.
          "givenName": "A String", # The given name of this player. In some places, this is known as the first name.
          "familyName": "A String", # The family name of this player. In some places, this is known as the last name.
        },
        "lastPlayedWith": { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
          "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
          "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
          "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
        },
        "playerId": "A String", # The ID of the player.
        "bannerUrlPortrait": "A String", # The url to the portrait mode player banner image.
        "profileSettings": { # This is a JSON template for profile settings # The player's profile settings. Controls whether or not the player's profile is visible to other players.
          "kind": "games#profileSettings", # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
          "profileVisible": True or False, # The player's current profile visibility. This field is visible to both 1P and 3P APIs.
        },
        "experienceInfo": { # This is a JSON template for 1P/3P metadata about the player's experience. # An object to represent Play Game experience information for the player.
          "lastLevelUpTimestampMillis": "A String", # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
          "currentExperiencePoints": "A String", # The current number of experience points for the player.
          "kind": "games#playerExperienceInfo", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
          "currentLevel": { # This is a JSON template for 1P/3P metadata about a user's level. # The current level of the player.
            "maxExperiencePoints": "A String", # The maximum experience points for this level.
            "kind": "games#playerLevel", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
            "minExperiencePoints": "A String", # The minimum experience points for this level.
            "level": 42, # The level for the user.
          },
          "nextLevel": { # This is a JSON template for 1P/3P metadata about a user's level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
            "maxExperiencePoints": "A String", # The maximum experience points for this level.
            "kind": "games#playerLevel", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
            "minExperiencePoints": "A String", # The minimum experience points for this level.
            "level": 42, # The level for the user.
          },
        },
        "bannerUrlLandscape": "A String", # The url to the landscape mode player banner image.
        "title": "A String", # The player's title rewarded for their game activities.
        "avatarImageUrl": "A String", # The base URL for the image that represents the player.
      },
    ],
    "kind": "games#playerListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerListResponse.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>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.
    </pre>
</div>

</body></html>