Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GoaOAuthProvider: GNOME Online Accounts Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GNOME Online Accounts Reference Manual">
<link rel="up" href="ch07.html" title="Core">
<link rel="prev" href="GoaProvider.html" title="GoaProvider">
<link rel="next" href="GoaOAuth2Provider.html" title="GoaOAuth2Provider">
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GoaOAuthProvider.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GoaOAuthProvider.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GoaProvider.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GoaOAuth2Provider.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GoaOAuthProvider"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GoaOAuthProvider.top_of_page"></a>GoaOAuthProvider</span></h2>
<p>GoaOAuthProvider — Abstract base class for OAuth 1.0a providers</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GoaOAuthProvider.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-request-uri" title="goa_oauth_provider_get_request_uri ()">goa_oauth_provider_get_request_uri</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-request-uri-params" title="goa_oauth_provider_get_request_uri_params ()">goa_oauth_provider_get_request_uri_params</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-authorization-uri" title="goa_oauth_provider_get_authorization_uri ()">goa_oauth_provider_get_authorization_uri</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-token-uri" title="goa_oauth_provider_get_token_uri ()">goa_oauth_provider_get_token_uri</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-callback-uri" title="goa_oauth_provider_get_callback_uri ()">goa_oauth_provider_get_callback_uri</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-consumer-key" title="goa_oauth_provider_get_consumer_key ()">goa_oauth_provider_get_consumer_key</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-consumer-secret" title="goa_oauth_provider_get_consumer_secret ()">goa_oauth_provider_get_consumer_secret</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-build-authorization-uri" title="goa_oauth_provider_build_authorization_uri ()">goa_oauth_provider_build_authorization_uri</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-use-mobile-browser" title="goa_oauth_provider_get_use_mobile_browser ()">goa_oauth_provider_get_use_mobile_browser</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-is-deny-node" title="goa_oauth_provider_is_deny_node ()">goa_oauth_provider_is_deny_node</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-is-identity-node" title="goa_oauth_provider_is_identity_node ()">goa_oauth_provider_is_identity_node</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-is-password-node" title="goa_oauth_provider_is_password_node ()">goa_oauth_provider_is_password_node</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-add-account-key-values" title="goa_oauth_provider_add_account_key_values ()">goa_oauth_provider_add_account_key_values</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-identity-sync" title="goa_oauth_provider_get_identity_sync ()">goa_oauth_provider_get_identity_sync</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-access-token-sync" title="goa_oauth_provider_get_access_token_sync ()">goa_oauth_provider_get_access_token_sync</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-parse-request-token-error" title="goa_oauth_provider_parse_request_token_error ()">goa_oauth_provider_parse_request_token_error</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GoaOAuthProvider.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GoaOAuthProvider.html#GoaOAuthProvider-struct" title="GoaOAuthProvider">GoaOAuthProvider</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GoaOAuthProvider.html#GoaOAuthProviderClass" title="struct GoaOAuthProviderClass">GoaOAuthProviderClass</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GoaOAuthProvider.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
    <span class="lineart">╰──</span> <a class="link" href="GoaProvider.html" title="GoaProvider">GoaProvider</a>
        <span class="lineart">╰──</span> GoaOAuthProvider
</pre>
</div>
<div class="refsect1">
<a name="GoaOAuthProvider.description"></a><h2>Description</h2>
<p><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> is an abstract base class for OAuth 1.0a
compliant implementations as defined by <a class="ulink" href="http://tools.ietf.org/html/rfc5849" target="_top">RFC
5849</a>. Additionally, the code works with providers
implementing <a class="ulink" href="http://oauth.googlecode.com/svn/spec/ext/session/1.0/drafts/1/spec.html" target="_top">OAuth
Session 1.0 Draft 1</a> for refreshing access tokens.</p>
<p>Subclasses must implement
<a class="link" href="GoaOAuthProvider.html#GoaOAuthProviderClass.get-consumer-key"><span class="type">GoaOAuthProviderClass.get_consumer_key</span></a>,
<a class="link" href="GoaOAuthProvider.html#GoaOAuthProviderClass.get-consumer-secret"><span class="type">GoaOAuthProviderClass.get_consumer_secret</span></a>,
<a class="link" href="GoaOAuthProvider.html#GoaOAuthProviderClass.get-request-uri"><span class="type">GoaOAuthProviderClass.get_request_uri</span></a>,
<a class="link" href="GoaOAuthProvider.html#GoaOAuthProviderClass.get-authorization-uri"><span class="type">GoaOAuthProviderClass.get_authorization_uri</span></a>,
<a class="link" href="GoaOAuthProvider.html#GoaOAuthProviderClass.get-token-uri"><span class="type">GoaOAuthProviderClass.get_token_uri</span></a>,
<a class="link" href="GoaOAuthProvider.html#GoaOAuthProviderClass.get-callback-uri"><span class="type">GoaOAuthProviderClass.get_callback_uri</span></a> and
<a class="link" href="GoaOAuthProvider.html#GoaOAuthProviderClass.get-identity-sync"><span class="type">GoaOAuthProviderClass.get_identity_sync</span></a> methods.</p>
<p>Additionally, the
<a class="link" href="GoaProvider.html#GoaProviderClass.get-provider-type"><span class="type">GoaProviderClass.get_provider_type</span></a>,
<a class="link" href="GoaProvider.html#GoaProviderClass.get-provider-name"><span class="type">GoaProviderClass.get_provider_name</span></a>,
<a class="link" href="GoaProvider.html#GoaProviderClass.build-object"><span class="type">GoaProviderClass.build_object</span></a> (this should chain up to its
parent class) methods must be implemented.</p>
<p>Note that the <a class="link" href="GoaProvider.html#GoaProviderClass.add-account"><span class="type">GoaProviderClass.add_account</span></a>,
<a class="link" href="GoaProvider.html#GoaProviderClass.refresh-account"><span class="type">GoaProviderClass.refresh_account</span></a> and
<a class="link" href="GoaProvider.html#GoaProviderClass.ensure-credentials-sync"><span class="type">GoaProviderClass.ensure_credentials_sync</span></a> methods do not
need to be implemented - this type implements these methods.</p>
</div>
<div class="refsect1">
<a name="GoaOAuthProvider.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="goa-oauth-provider-get-request-uri"></a><h3>goa_oauth_provider_get_request_uri ()</h3>
<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_get_request_uri (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>);</pre>
<p>Gets the request uri.</p>
<p>http://tools.ietf.org/html/rfc5849<span class="type">section-2.1</span></p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-request-uri.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-request-uri.returns"></a><h4>Returns</h4>
<p>A string owned by <em class="parameter"><code>provider</code></em>
- do not free. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-get-request-uri-params"></a><h3>goa_oauth_provider_get_request_uri_params ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
goa_oauth_provider_get_request_uri_params
                               (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>);</pre>
<p>Gets additional parameters for the request URI.</p>
<p>http://tools.ietf.org/html/rfc5849<span class="type">section-2.1</span></p>
<p>This is a virtual method where the default implementation returns
<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-request-uri-params.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-request-uri-params.returns"></a><h4>Returns</h4>
<p><a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> (for no parameters) or a
<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of (key, value) pairs that will be added to
the URI. The caller will free the returned value with <a href="/usr/share/gtk-doc/html/glib/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-get-authorization-uri"></a><h3>goa_oauth_provider_get_authorization_uri ()</h3>
<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_get_authorization_uri
                               (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>);</pre>
<p>Gets the authorization uri.</p>
<p>http://tools.ietf.org/html/rfc5849<span class="type">section-2.2</span></p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-authorization-uri.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-authorization-uri.returns"></a><h4>Returns</h4>
<p>A string owned by <em class="parameter"><code>provider</code></em>
- do not free. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-get-token-uri"></a><h3>goa_oauth_provider_get_token_uri ()</h3>
<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_get_token_uri (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>);</pre>
<p>Gets the token uri.</p>
<p>http://tools.ietf.org/html/rfc5849<span class="type">section-2.3</span></p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-token-uri.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-token-uri.returns"></a><h4>Returns</h4>
<p>A string owned by <em class="parameter"><code>provider</code></em>
- do not free. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-get-callback-uri"></a><h3>goa_oauth_provider_get_callback_uri ()</h3>
<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_get_callback_uri (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>);</pre>
<p>Gets the callback uri.</p>
<p>http://tools.ietf.org/html/rfc5849<span class="type">section-2.1</span></p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-callback-uri.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-callback-uri.returns"></a><h4>Returns</h4>
<p>A string owned by <em class="parameter"><code>provider</code></em>
- do not free. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-get-consumer-key"></a><h3>goa_oauth_provider_get_consumer_key ()</h3>
<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_get_consumer_key (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>);</pre>
<p>Gets the consumer key identifying the client.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-consumer-key.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-consumer-key.returns"></a><h4>Returns</h4>
<p>A string owned by <em class="parameter"><code>provider</code></em>
- do not free. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-get-consumer-secret"></a><h3>goa_oauth_provider_get_consumer_secret ()</h3>
<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_get_consumer_secret
                               (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>);</pre>
<p>Gets the consumer secret identifying the client.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-consumer-secret.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-consumer-secret.returns"></a><h4>Returns</h4>
<p>A string owned by <em class="parameter"><code>provider</code></em>
- do not free. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-build-authorization-uri"></a><h3>goa_oauth_provider_build_authorization_uri ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_build_authorization_uri
                               (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *authorization_uri</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *escaped_oauth_token</code></em>);</pre>
<p>Builds the URI that can be opened in a web browser (or embedded web
browser widget) to start authenticating an user.</p>
<p>The default implementation just returns the expected URI
(e.g. <code class="literal">http://example.com/dialog/oauth?auth_token=1234567890</code>)</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>override (and chain up) if you e.g. need to to pass additional
parameters.</p></li></ul></div>
<p>The <em class="parameter"><code>authorization_uri</code></em>
 parameter originate from the result of the
the <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-authorization-uri" title="goa_oauth_provider_get_authorization_uri ()"><code class="function">goa_oauth_provider_get_authorization_uri()</code></a> method. The
<em class="parameter"><code>escaped_oauth_token</code></em>
 parameter is the temporary credentials identifier
escaped using <a href="/usr/share/gtk-doc/html/glib/glib-URI-Functions.html#g-uri-escape-string"><code class="function">g_uri_escape_string()</code></a>.</p>
<div class="refsect3">
<a name="goa-oauth-provider-build-authorization-uri.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>authorization_uri</p></td>
<td class="parameter_description"><p>An authorization URI.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>escaped_oauth_token</p></td>
<td class="parameter_description"><p>An escaped oauth token.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-build-authorization-uri.returns"></a><h4>Returns</h4>
<p>An authorization URI that must be freed with <a href="/usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-get-use-mobile-browser"></a><h3>goa_oauth_provider_get_use_mobile_browser ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
goa_oauth_provider_get_use_mobile_browser
                               (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>);</pre>
<p>Returns whether there is a need for the embedded browser to identify
itself as running on a mobile phone in order to get a more compact
version of the approval page.</p>
<p>This is a virtual method where the default implementation returns
<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-use-mobile-browser.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-use-mobile-browser.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the embedded browser should identify itself as
running on a mobile platform, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-is-deny-node"></a><h3>goa_oauth_provider_is_deny_node ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
goa_oauth_provider_is_deny_node (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>,
                                 <em class="parameter"><code><span class="type">WebKitDOMNode</span> *node</code></em>);</pre>
<p>Checks whether <em class="parameter"><code>node</code></em>
 is the HTML UI element that the user can use
to deny permission to access his account. Usually they are either a
WebKitDOMHTMLButtonElement or a WebKitDOMHTMLInputElement.</p>
<p>Please note that providers may have multiple such elements in their
UI and this method should catch all of them.</p>
<p>This is a virtual method where the default implementation returns
<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
<div class="refsect3">
<a name="goa-oauth-provider-is-deny-node.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>node</p></td>
<td class="parameter_description"><p>A WebKitDOMNode.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-is-deny-node.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>node</code></em>
can be used to deny permission.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-is-identity-node"></a><h3>goa_oauth_provider_is_identity_node ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
goa_oauth_provider_is_identity_node (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>,
                                     <em class="parameter"><code><span class="type">WebKitDOMHTMLInputElement</span> *element</code></em>);</pre>
<p>Checks whether <em class="parameter"><code>element</code></em>
 is the HTML UI element that the user can
use to identify herself at the provider.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-oauth-provider-is-identity-node.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>A WebKitDOMHTMLInputElement.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-is-identity-node.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>element</code></em>
can be used to deny permission.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-is-password-node"></a><h3>goa_oauth_provider_is_password_node ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
goa_oauth_provider_is_password_node (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>,
                                     <em class="parameter"><code><span class="type">WebKitDOMHTMLInputElement</span> *element</code></em>);</pre>
<p>Checks whether <em class="parameter"><code>element</code></em>
 is the HTML UI element that the user can
use to enter her password. This can be used to offer a
<a class="link" href="GoaPasswordBased.html" title="GoaPasswordBased"><span class="type">GoaPasswordBased</span></a> interface by saving the user's
password. Providers usually frown upon doing this, so this is not
recommended.</p>
<p>This is a virtual method where the default implementation returns
<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
<div class="refsect3">
<a name="goa-oauth-provider-is-password-node.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>A WebKitDOMHTMLInputElement</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-is-password-node.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>element</code></em>
can be used to enter the password.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-add-account-key-values"></a><h3>goa_oauth_provider_add_account_key_values ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
goa_oauth_provider_add_account_key_values
                               (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariantBuilder"><span class="type">GVariantBuilder</span></a> *builder</code></em>);</pre>
<p>Hook for implementations to add key/value pairs to the key-file
when creating an account.</p>
<p>This is a virtual method where the default implementation does nothing.</p>
<div class="refsect3">
<a name="goa-oauth-provider-add-account-key-values.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>builder</p></td>
<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariantBuilder"><span class="type">GVariantBuilder</span></a> for a <code class="literal">a{ss}</code> variant.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-get-identity-sync"></a><h3>goa_oauth_provider_get_identity_sync ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_get_identity_sync (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>,
                                      <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *access_token</code></em>,
                                      <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *access_token_secret</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **out_presentation_identity</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Method that returns the identity corresponding to <em class="parameter"><code>access_token</code></em>
 and
<em class="parameter"><code>access_token_secret</code></em>
.</p>
<p>The identity is needed because all authentication happens out of
band. In addition to the identity, an implementation also returns a
<span class="emphasis"><em>presentation identity</em></span> that is more suitable
for presentation (the identity could be a GUID for example).</p>
<p>The calling thread is blocked while the identity is obtained.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-identity-sync.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>access_token</p></td>
<td class="parameter_description"><p>A valid OAuth 1.0 access token.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>access_token_secret</p></td>
<td class="parameter_description"><p>The valid secret for <em class="parameter"><code>access_token</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>out_presentation_identity</p></td>
<td class="parameter_description"><p>Return location for presentation identity or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>Return location for error or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-identity-sync.returns"></a><h4>Returns</h4>
<p> The identity or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if error is set. The returned string
must be freed with <a href="/usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-get-access-token-sync"></a><h3>goa_oauth_provider_get_access_token_sync ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_get_access_token_sync
                               (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>,
                                <em class="parameter"><code><a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> *object</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_refresh</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **out_access_token_secret</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *out_access_token_expires_in</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Synchronously gets an access token for <em class="parameter"><code>object</code></em>
. The calling thread
is blocked while the operation is pending.</p>
<p>The resulting token is typically read from the local cache so most
of the time only a local roundtrip to the storage for the token
cache (e.g. <span class="command"><strong>gnome-keyring-daemon</strong></span>) is
needed. However, the operation may involve refreshing the token
with the service provider so a full network round-trip may be
needed.</p>
<p>Note that multiple calls are serialized to avoid multiple
outstanding requests to the service provider.</p>
<p>This operation may fail if e.g. unable to refresh the credentials
or if network connectivity is not available. Note that even if a
token is returned, the returned token isn't guaranteed to work -
use <a class="link" href="GoaProvider.html#goa-provider-ensure-credentials-sync" title="goa_provider_ensure_credentials_sync ()"><code class="function">goa_provider_ensure_credentials_sync()</code></a> if you need
stronger guarantees.</p>
<div class="refsect3">
<a name="goa-oauth-provider-get-access-token-sync.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>force_refresh</p></td>
<td class="parameter_description"><p>If set to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, forces a refresh of the access token, if possible.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>out_access_token_secret</p></td>
<td class="parameter_description"><p>The secret for the return access token. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>out_access_token_expires_in</p></td>
<td class="parameter_description"><p>Return location for how many seconds the returned token is valid for (0 if unknown) or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>Return location for error or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-get-access-token-sync.returns"></a><h4>Returns</h4>
<p> The access token or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if error is set. The returned
string must be freed with <a href="/usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-oauth-provider-parse-request-token-error"></a><h3>goa_oauth_provider_parse_request_token_error ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_oauth_provider_parse_request_token_error
                               (<em class="parameter"><code><a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> *provider</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/rest-0.7/RestProxyCall.html#RestProxyCall-struct"><span class="type">RestProxyCall</span></a> *call</code></em>);</pre>
<p>Tries to parse the headers and payload within <em class="parameter"><code>call</code></em>
 to provide a
human readable error message in case the request token could not
be fetched.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-oauth-provider-parse-request-token-error.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>provider</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>call</p></td>
<td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/rest-0.7/RestProxyCall.html#RestProxyCall-struct"><span class="type">RestProxyCall</span></a> that was used to fetch the request token.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-oauth-provider-parse-request-token-error.returns"></a><h4>Returns</h4>
<p> A human readable error message or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the cause of the
error could not be determined. The returned string must be freed with
<a href="/usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="GoaOAuthProvider.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GoaOAuthProvider-struct"></a><h3>GoaOAuthProvider</h3>
<pre class="programlisting">typedef struct _GoaOAuthProvider GoaOAuthProvider;</pre>
<p>The <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a> structure contains only private data and should
only be accessed using the provided API.</p>
</div>
<hr>
<div class="refsect2">
<a name="GoaOAuthProviderClass"></a><h3>struct GoaOAuthProviderClass</h3>
<pre class="programlisting">struct GoaOAuthProviderClass {
  GoaProviderClass parent_class;

  /* pure virtual */
  const gchar *(*get_consumer_key)             (GoaOAuthProvider             *provider);
  const gchar *(*get_consumer_secret)          (GoaOAuthProvider             *provider);
  const gchar *(*get_request_uri)              (GoaOAuthProvider             *provider);
  const gchar *(*get_authorization_uri)        (GoaOAuthProvider             *provider);
  const gchar *(*get_token_uri)                (GoaOAuthProvider             *provider);
  const gchar *(*get_callback_uri)             (GoaOAuthProvider             *provider);

  gchar       *(*get_identity_sync)            (GoaOAuthProvider             *provider,
                                                const gchar                  *access_token,
                                                const gchar                  *access_token_secret,
                                                gchar                       **out_presentation_identity,
                                                GCancellable                 *cancellable,
                                                GError                      **error);

  gchar       *(*parse_request_token_error)    (GoaOAuthProvider             *provider,
                                                RestProxyCall                *call);

  /* virtual but with default implementation */
  gchar       *(*build_authorization_uri)      (GoaOAuthProvider             *provider,
                                                const gchar                  *authorization_uri,
                                                const gchar                  *escaped_oauth_token);
  gboolean     (*get_use_mobile_browser)       (GoaOAuthProvider             *provider);
  gchar      **(*get_request_uri_params)       (GoaOAuthProvider             *provider);
  void         (*add_account_key_values)       (GoaOAuthProvider             *provider,
                                                GVariantBuilder              *builder);

  /* pure virtual */
  gboolean     (*is_identity_node)             (GoaOAuthProvider             *provider,
                                                WebKitDOMHTMLInputElement    *element);

  /* virtual but with default implementation */
  gboolean     (*is_deny_node)                 (GoaOAuthProvider             *provider,
                                                WebKitDOMNode                *node);
  gboolean     (*is_password_node)             (GoaOAuthProvider             *provider,
                                                WebKitDOMHTMLInputElement    *element);
};
</pre>
<p>Class structure for <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider"><span class="type">GoaOAuthProvider</span></a>.</p>
<div class="refsect3">
<a name="GoaOAuthProviderClass.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.get-consumer-key"></a>get_consumer_key</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-consumer-key" title="goa_oauth_provider_get_consumer_key ()"><code class="function">goa_oauth_provider_get_consumer_key()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.get-consumer-secret"></a>get_consumer_secret</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-consumer-secret" title="goa_oauth_provider_get_consumer_secret ()"><code class="function">goa_oauth_provider_get_consumer_secret()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.get-request-uri"></a>get_request_uri</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-request-uri" title="goa_oauth_provider_get_request_uri ()"><code class="function">goa_oauth_provider_get_request_uri()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.get-authorization-uri"></a>get_authorization_uri</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-authorization-uri" title="goa_oauth_provider_get_authorization_uri ()"><code class="function">goa_oauth_provider_get_authorization_uri()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.get-token-uri"></a>get_token_uri</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-token-uri" title="goa_oauth_provider_get_token_uri ()"><code class="function">goa_oauth_provider_get_token_uri()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.get-callback-uri"></a>get_callback_uri</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-callback-uri" title="goa_oauth_provider_get_callback_uri ()"><code class="function">goa_oauth_provider_get_callback_uri()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.get-identity-sync"></a>get_identity_sync</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-identity-sync" title="goa_oauth_provider_get_identity_sync ()"><code class="function">goa_oauth_provider_get_identity_sync()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.parse-request-token-error"></a>parse_request_token_error</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-parse-request-token-error" title="goa_oauth_provider_parse_request_token_error ()"><code class="function">goa_oauth_provider_parse_request_token_error()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.build-authorization-uri"></a>build_authorization_uri</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-build-authorization-uri" title="goa_oauth_provider_build_authorization_uri ()"><code class="function">goa_oauth_provider_build_authorization_uri()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.get-use-mobile-browser"></a>get_use_mobile_browser</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-use-mobile-browser" title="goa_oauth_provider_get_use_mobile_browser ()"><code class="function">goa_oauth_provider_get_use_mobile_browser()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.get-request-uri-params"></a>get_request_uri_params</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-get-request-uri-params" title="goa_oauth_provider_get_request_uri_params ()"><code class="function">goa_oauth_provider_get_request_uri_params()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.add-account-key-values"></a>add_account_key_values</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-add-account-key-values" title="goa_oauth_provider_add_account_key_values ()"><code class="function">goa_oauth_provider_add_account_key_values()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.is-identity-node"></a>is_identity_node</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-is-identity-node" title="goa_oauth_provider_is_identity_node ()"><code class="function">goa_oauth_provider_is_identity_node()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.is-deny-node"></a>is_deny_node</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-is-deny-node" title="goa_oauth_provider_is_deny_node ()"><code class="function">goa_oauth_provider_is_deny_node()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaOAuthProviderClass.is-password-node"></a>is_password_node</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaOAuthProvider.html#goa-oauth-provider-is-password-node" title="goa_oauth_provider_is_password_node ()"><code class="function">goa_oauth_provider_is_password_node()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.28</div>
</body>
</html>