<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="classroom_v1.html">Google Classroom API</a> . <a href="classroom_v1.userProfiles.html">userProfiles</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="classroom_v1.userProfiles.guardianInvitations.html">guardianInvitations()</a></code>
</p>
<p class="firstline">Returns the guardianInvitations Resource.</p>

<p class="toc_element">
  <code><a href="classroom_v1.userProfiles.guardians.html">guardians()</a></code>
</p>
<p class="firstline">Returns the guardians Resource.</p>

<p class="toc_element">
  <code><a href="#get">get(userId, x__xgafv=None)</a></code></p>
<p class="firstline">Returns a user profile.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(userId, x__xgafv=None)</code>
  <pre>Returns a user profile.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting user is not permitted to access
this user profile, if no profile exists with the requested ID, or for
access errors.

Args:
  userId: string, Identifier of the profile to return. The identifier can be one of the
following:

* the numeric identifier for the user
* the email address of the user
* the string literal `&quot;me&quot;`, indicating the requesting user (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Global information for a user.
    &quot;id&quot;: &quot;A String&quot;, # Identifier of the user.
        #
        # Read-only.
    &quot;permissions&quot;: [ # Global permissions of the user.
        #
        # Read-only.
      { # Global user permission description.
        &quot;permission&quot;: &quot;A String&quot;, # Permission value.
      },
    ],
    &quot;verifiedTeacher&quot;: True or False, # Represents whether a G Suite for Education user&#x27;s domain administrator has
        # explicitly verified them as being a teacher. If the user is not a member of
        # a G Suite for Education domain, than this field is always false.
        #
        # Read-only
    &quot;emailAddress&quot;: &quot;A String&quot;, # Email address of the user.
        #
        # Read-only.
    &quot;photoUrl&quot;: &quot;A String&quot;, # URL of user&#x27;s profile photo.
        #
        # Read-only.
    &quot;name&quot;: { # Details of the user&#x27;s name. # Name of the user.
        #
        # Read-only.
      &quot;fullName&quot;: &quot;A String&quot;, # The user&#x27;s full name formed by concatenating the first and last name
          # values.
          #
          # Read-only.
      &quot;familyName&quot;: &quot;A String&quot;, # The user&#x27;s last name.
          #
          # Read-only.
      &quot;givenName&quot;: &quot;A String&quot;, # The user&#x27;s first name.
          #
          # Read-only.
    },
  }</pre>
</div>

</body></html>