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>GDataOAuth1Authorizer: GData Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GData Reference Manual">
<link rel="up" href="ch05.html" title="Authentication/Authorization API">
<link rel="prev" href="GDataGoaAuthorizer.html" title="GDataGoaAuthorizer">
<link rel="next" href="GDataOAuth2Authorizer.html" title="GDataOAuth2Authorizer">
<meta name="generator" content="GTK-Doc V1.26.1 (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="#GDataOAuth1Authorizer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GDataOAuth1Authorizer.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                  <a href="#GDataOAuth1Authorizer.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#GDataOAuth1Authorizer.properties" class="shortcut">Properties</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="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GDataGoaAuthorizer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GDataOAuth2Authorizer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GDataOAuth1Authorizer"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GDataOAuth1Authorizer.top_of_page"></a>GDataOAuth1Authorizer</span></h2>
<p>GDataOAuth1Authorizer — GData OAuth 1.0 authorization interface</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.stability-level"></a><h2>Stability Level</h2>
<acronym title="The intention of a Stable interface is to enable arbitrary third parties to
develop applications to these interfaces, release them, and have confidence that
they will run on all minor releases of the product (after the one in which the
interface was introduced, and within the same major release). Even at a major
release, incompatible changes are expected to be rare, and to have strong
justifications.
"><span class="acronym">Stable</span></acronym>, unless otherwise indicated
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.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">
<a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="returnvalue">GDataOAuth1Authorizer</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-new" title="gdata_oauth1_authorizer_new ()">gdata_oauth1_authorizer_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="returnvalue">GDataOAuth1Authorizer</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-new-for-authorization-domains" title="gdata_oauth1_authorizer_new_for_authorization_domains ()">gdata_oauth1_authorizer_new_for_authorization_domains</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()">gdata_oauth1_authorizer_request_authentication_uri</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="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri-async" title="gdata_oauth1_authorizer_request_authentication_uri_async ()">gdata_oauth1_authorizer_request_authentication_uri_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri-finish" title="gdata_oauth1_authorizer_request_authentication_uri_finish ()">gdata_oauth1_authorizer_request_authentication_uri_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization" title="gdata_oauth1_authorizer_request_authorization ()">gdata_oauth1_authorizer_request_authorization</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="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization-async" title="gdata_oauth1_authorizer_request_authorization_async ()">gdata_oauth1_authorizer_request_authorization_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization-finish" title="gdata_oauth1_authorizer_request_authorization_finish ()">gdata_oauth1_authorizer_request_authorization_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-get-application-name" title="gdata_oauth1_authorizer_get_application_name ()">gdata_oauth1_authorizer_get_application_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-get-locale" title="gdata_oauth1_authorizer_get_locale ()">gdata_oauth1_authorizer_get_locale</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="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-set-locale" title="gdata_oauth1_authorizer_set_locale ()">gdata_oauth1_authorizer_set_locale</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">SoupURI</span> *
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-get-proxy-uri" title="gdata_oauth1_authorizer_get_proxy_uri ()">gdata_oauth1_authorizer_get_proxy_uri</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="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-set-proxy-uri" title="gdata_oauth1_authorizer_set_proxy_uri ()">gdata_oauth1_authorizer_set_proxy_uri</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GProxyResolver</span> *
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-get-proxy-resolver" title="gdata_oauth1_authorizer_get_proxy_resolver ()">gdata_oauth1_authorizer_get_proxy_resolver</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="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-set-proxy-resolver" title="gdata_oauth1_authorizer_set_proxy_resolver ()">gdata_oauth1_authorizer_set_proxy_resolver</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
</td>
<td class="function_name">
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-get-timeout" title="gdata_oauth1_authorizer_get_timeout ()">gdata_oauth1_authorizer_get_timeout</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="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-set-timeout" title="gdata_oauth1_authorizer_set_timeout ()">gdata_oauth1_authorizer_set_timeout</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type">
<a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
<td class="property_name"><a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--application-name" title="The “application-name” property">application-name</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type">
<a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
<td class="property_name"><a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--locale" title="The “locale” property">locale</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<span class="type">GProxyResolver</span> *</td>
<td class="property_name"><a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--proxy-resolver" title="The “proxy-resolver” property">proxy-resolver</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<span class="type">SoupURI</span> *</td>
<td class="property_name"><a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--proxy-uri" title="The “proxy-uri” property">proxy-uri</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
<td class="property_name"><a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--timeout" title="The “timeout” property">timeout</a></td>
<td class="property_flags">Read / Write</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.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="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer-struct" title="GDataOAuth1Authorizer">GDataOAuth1Authorizer</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1AuthorizerClass" title="GDataOAuth1AuthorizerClass">GDataOAuth1AuthorizerClass</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="../gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
    <span class="lineart">╰──</span> GDataOAuth1Authorizer
</pre>
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GDataOAuth1Authorizer implements
 <a class="link" href="GDataAuthorizer.html" title="GDataAuthorizer">GDataAuthorizer</a>.</p>
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gdata/gdata-oauth1-authorizer.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.description"></a><h2>Description</h2>
<p><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> provides an implementation of the <a class="link" href="GDataAuthorizer.html" title="GDataAuthorizer"><span class="type">GDataAuthorizer</span></a> interface for authentication and authorization using the</p>
<a class="ulink" href="http://code.google.com/apis/accounts/docs/OAuthForInstalledApps.html" target="_top">OAuth 1.0</a> process,
<p>which was preferred by Google until OAuth 2.0 was released — it is now
preferred to use <a class="link" href="GDataOAuth2Authorizer.html" title="GDataOAuth2Authorizer"><span class="type">GDataOAuth2Authorizer</span></a>.</p>
<p>OAuth 1.0 replaces the deprecated ClientLogin process. One of the main reasons for this is to allow two-factor authentication to be supported, by
moving the authentication interface to a web page under Google's control.</p>
<p>The OAuth 1.0 process as implemented by Google follows the <a class="ulink" href="http://tools.ietf.org/html/rfc5849" target="_top">OAuth 1.0 protocol as
specified by IETF in RFC 5849</a>, with a few additions to support scopes (implemented in libgdata by <a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="type">GDataAuthorizationDomain</span></a>s),
locales and custom domains. Briefly, the process is initiated by requesting an authenticated request token from the Google accounts service
(using <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a>), going to the authentication URI for the request token, authenticating and authorizing
access to the desired scopes, then providing the verifier returned by Google to the Google accounts service again (using
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization" title="gdata_oauth1_authorizer_request_authorization ()"><code class="function">gdata_oauth1_authorizer_request_authorization()</code></a>) to authorize the token. This results in an access token which is attached to all future requests
to the online service.</p>
<p>While Google supports unregistered and registered modes for OAuth 1.0 authorization, it only supports unregistered mode for installed applications.
Consequently, libgdata also only supports unregistered mode. For this purpose, the application name to be presented to the user on the
authentication page at the URI returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a> can be specified when constructing the
<a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>.</p>
<p>As described, each authentication/authorization operation is in two parts: <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a> and
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization" title="gdata_oauth1_authorizer_request_authorization ()"><code class="function">gdata_oauth1_authorizer_request_authorization()</code></a>. <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> stores no state about ongoing authentication operations (i.e. ones which
have successfully called <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a>, but are yet to successfully call
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization" title="gdata_oauth1_authorizer_request_authorization ()"><code class="function">gdata_oauth1_authorizer_request_authorization()</code></a>). Consequently, operations can be abandoned before calling
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization" title="gdata_oauth1_authorizer_request_authorization ()"><code class="function">gdata_oauth1_authorizer_request_authorization()</code></a> without problems. The only state necessary between the calls is the request token and request token
secret, as returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a> and taken as parameters to
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization" title="gdata_oauth1_authorizer_request_authorization ()"><code class="function">gdata_oauth1_authorizer_request_authorization()</code></a>.</p>
<p><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> natively supports authorization against multiple services in a single authorization request (unlike
<a class="link" href="GDataClientLoginAuthorizer.html" title="GDataClientLoginAuthorizer"><span class="type">GDataClientLoginAuthorizer</span></a>).</p>
<p>Each access token is long lived, so reauthorization is rarely necessary with <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>. Consequently, refreshing authorization using
<a class="link" href="GDataAuthorizer.html#gdata-authorizer-refresh-authorization" title="gdata_authorizer_refresh_authorization ()"><code class="function">gdata_authorizer_refresh_authorization()</code></a> is not supported by <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>, and will immediately return <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> with no error set.</p>
<div class="example">
<a name="id-1.3.5.6.10.11"></a><p class="title"><b>Example 8. Authenticating Asynchronously Using OAuth 1.0</b></p>
<div class="example-contents">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="usertype">GDataSomeService</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">service</span><span class="symbol">;</span>
<span class="usertype">GDataOAuth1Authorizer</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">authorizer</span><span class="symbol">;</span>

<span class="comment">/* Create an authorizer and authenticate and authorize the service we're using, asynchronously. */</span>
<span class="normal">authorizer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-new">gdata_oauth1_authorizer_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">_</span><span class="symbol">(</span><span class="string">"My libgdata application"</span><span class="symbol">),</span><span class="normal"> GDATA_TYPE_SOME_SERVICE</span><span class="symbol">);</span>
<span class="function"><a href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri-async">gdata_oauth1_authorizer_request_authentication_uri_async</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">authorizer</span><span class="symbol">,</span><span class="normal"> cancellable</span><span class="symbol">,</span>
<span class="normal">                                                          </span><span class="symbol">(</span><span class="normal">GAsyncReadyCallback</span><span class="symbol">)</span><span class="normal"> request_authentication_uri_cb</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>

<span class="comment">/* Create a service object and link it with the authorizer */</span>
<span class="normal">service </span><span class="symbol">=</span><span class="normal"> </span><span class="function">gdata_some_service_new</span><span class="normal"> </span><span class="symbol">(</span><span class="function">GDATA_AUTHORIZER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">authorizer</span><span class="symbol">));</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">request_authentication_uri_cb</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GDataOAuth1Authorizer</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">authorizer</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GAsyncResult</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">async_result</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">    </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">authentication_uri</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">token</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">token_secret</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">verifier</span><span class="symbol">;</span>
<span class="normal">    </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>

<span class="normal">    authentication_uri </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri-finish">gdata_oauth1_authorizer_request_authentication_uri_finish</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">authorizer</span><span class="symbol">,</span><span class="normal"> async_result</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">token</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">token_secret</span><span class="symbol">,</span>
<span class="normal">                                                                                    </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span>

<span class="normal">    </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">        </span><span class="comment">/* Notify the user of all errors except cancellation errors */</span>
<span class="normal">        </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-matches">g_error_matches</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> G_IO_ERROR</span><span class="symbol">,</span><span class="normal"> G_IO_ERROR_CANCELLED</span><span class="symbol">))</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">            </span><span class="function"><a href="../glib/glib-Message-Logging.html#g-error">g_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Requesting a token failed: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">        </span><span class="cbracket">}</span>

<span class="normal">        </span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">        </span><span class="keyword">goto</span><span class="normal"> finish</span><span class="symbol">;</span>
<span class="normal">    </span><span class="cbracket">}</span>

<span class="normal">    </span><span class="comment">/* (Present the page at the authentication URI to the user, either in an embedded or stand-alone web browser, and</span>
<span class="comment">     * ask them to grant access to the application and return the verifier Google gives them.) */</span>
<span class="normal">    verifier </span><span class="symbol">=</span><span class="normal"> </span><span class="function">ask_user_for_verifier</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">authentication_uri</span><span class="symbol">);</span>

<span class="normal">    </span><span class="function"><a href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization-async">gdata_oauth1_authorizer_request_authorization_async</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">authorizer</span><span class="symbol">,</span><span class="normal"> token</span><span class="symbol">,</span><span class="normal"> token_secret</span><span class="symbol">,</span><span class="normal"> verifier</span><span class="symbol">,</span><span class="normal"> cancellable</span><span class="symbol">,</span>
<span class="normal">                                                         </span><span class="symbol">(</span><span class="normal">GAsyncReadyCallback</span><span class="symbol">)</span><span class="normal"> request_authorization_cb</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>

<span class="label">finish:</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">verifier</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">authentication_uri</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token</span><span class="symbol">);</span>

<span class="normal">    </span><span class="comment">/* Zero out the secret before freeing. */</span>
<span class="normal">    </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">        </span><span class="function">memset</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="function">strlen</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret</span><span class="symbol">));</span>
<span class="normal">    </span><span class="cbracket">}</span>

<span class="normal">    </span><span class="function"><a href="../glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret</span><span class="symbol">);</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">request_authorization_cb</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GDataOAuth1Authorizer</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">authorizer</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GAsyncResult</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">async_result</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">    </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>

<span class="normal">    </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization-finish">gdata_oauth1_authorizer_request_authorization_finish</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">authorizer</span><span class="symbol">,</span><span class="normal"> async_result</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">==</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">        </span><span class="comment">/* Notify the user of all errors except cancellation errors */</span>
<span class="normal">        </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-matches">g_error_matches</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> G_IO_ERROR</span><span class="symbol">,</span><span class="normal"> G_IO_ERROR_CANCELLED</span><span class="symbol">))</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">            </span><span class="function"><a href="../glib/glib-Message-Logging.html#g-error">g_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Authorization failed: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">        </span><span class="cbracket">}</span>

<span class="normal">        </span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">        </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="normal">    </span><span class="cbracket">}</span>

<span class="normal">    </span><span class="comment">/* (The client is now authenticated and authorized against the service.</span>
<span class="comment">     * It can now proceed to execute queries on the service object which require the user to be authenticated.) */</span>
<span class="cbracket">}</span>

<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>
<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">authorizer</span><span class="symbol">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

</div>
<br class="example-break">
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-new"></a><h3>gdata_oauth1_authorizer_new ()</h3>
<pre class="programlisting"><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="returnvalue">GDataOAuth1Authorizer</span></a> *
gdata_oauth1_authorizer_new (<em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_name</code></em>,
                             <em class="parameter"><code><a href="../gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> service_type</code></em>);</pre>
<p>Creates a new <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>.</p>
<p>The <a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="type">GDataAuthorizationDomain</span></a>s for the given <em class="parameter"><code>service_type</code></em>
 (i.e. as returned by <a class="link" href="GDataService.html#gdata-service-get-authorization-domains" title="gdata_service_get_authorization_domains ()"><code class="function">gdata_service_get_authorization_domains()</code></a>) are the ones the
user will be requested to authorize access to on the page at the URI returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a>.</p>
<p>The given <em class="parameter"><code>application_name</code></em>
 will set the value of <a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--application-name" title="The “application-name” property"><span class="type">“application-name”</span></a> and will be displayed to the user on authentication pages
returned by Google. If <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is provided, the value of <a href="../glib/glib-Miscellaneous-Utility-Functions.html#g-get-application-name"><code class="function">g_get_application_name()</code></a> will be used as a fallback.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-new.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>application_name</p></td>
<td class="parameter_description"><p>a human-readable, translated application name to use on authentication pages, or <a href="../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>service_type</p></td>
<td class="parameter_description"><p>the <a href="../gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of a <a class="link" href="GDataService.html" title="GDataService"><span class="type">GDataService</span></a> subclass which the <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> will be used with</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-new.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</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>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-new-for-authorization-domains"></a><h3>gdata_oauth1_authorizer_new_for_authorization_domains ()</h3>
<pre class="programlisting"><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="returnvalue">GDataOAuth1Authorizer</span></a> *
gdata_oauth1_authorizer_new_for_authorization_domains
                               (<em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_name</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *authorization_domains</code></em>);</pre>
<p>Creates a new <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>. This function is intended to be used only when the default authorization domain list for a single
<a class="link" href="GDataService.html" title="GDataService"><span class="type">GDataService</span></a>, as used by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-new" title="gdata_oauth1_authorizer_new ()"><code class="function">gdata_oauth1_authorizer_new()</code></a>, isn't suitable. For example, this could be because the <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> will be used
with multiple <a class="link" href="GDataService.html" title="GDataService"><span class="type">GDataService</span></a> subclasses, or because the client requires a specific set of authorization domains.</p>
<p>The specified <a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="type">GDataAuthorizationDomain</span></a>s are the ones the user will be requested to authorize access to on the page at the URI returned by
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a>.</p>
<p>The given <em class="parameter"><code>application_name</code></em>
 will set the value of <a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--application-name" title="The “application-name” property"><span class="type">“application-name”</span></a> and will be displayed to the user on authentication pages
returned by Google. If <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is provided, the value of <a href="../glib/glib-Miscellaneous-Utility-Functions.html#g-get-application-name"><code class="function">g_get_application_name()</code></a> will be used as a fallback.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-new-for-authorization-domains.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>application_name</p></td>
<td class="parameter_description"><p>a human-readable, translated application name to use on authentication pages, or <a href="../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>authorization_domains</p></td>
<td class="parameter_description"><p>a non-empty list of <a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="type">GDataAuthorizationDomain</span></a>s to be
authorized against by the <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GDataAuthorizationDomain][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-new-for-authorization-domains.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</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>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-request-authentication-uri"></a><h3>gdata_oauth1_authorizer_request_authentication_uri ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
gdata_oauth1_authorizer_request_authentication_uri
                               (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **token</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **token_secret</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Requests a fresh unauthenticated token from the Google accounts service and builds and returns the URI of an authentication page for that token.
This should then be presented to the user (e.g. in an embedded or stand alone web browser). The authentication page will ask the user to log in
using their Google account, then ask them to grant access to the <a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="type">GDataAuthorizationDomain</span></a>s passed to the constructor of the
<a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>. If the user grants access, they will be given a verifier, which can then be passed to
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization" title="gdata_oauth1_authorizer_request_authorization ()"><code class="function">gdata_oauth1_authorizer_request_authorization()</code></a> (along with the <em class="parameter"><code>token</code></em>
 and <em class="parameter"><code>token_secret</code></em>
 values returned by this method) to authorize the token.</p>
<p>This method can fail if the server returns an error, but this is unlikely. If it does happen, a <a class="link" href="GDataService.html#GDATA-SERVICE-ERROR-PROTOCOL-ERROR:CAPS"><code class="literal">GDATA_SERVICE_ERROR_PROTOCOL_ERROR</code></a> will be
raised, <em class="parameter"><code>token</code></em>
 and <em class="parameter"><code>token_secret</code></em>
 will be set to <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will be returned.</p>
<p>This method implements <a class="ulink" href="http://tools.ietf.org/html/rfc5849#section-2.1" target="_top">Section 2.1</a> and</p>
<a class="ulink" href="http://tools.ietf.org/html/rfc5849#section-2.2" target="_top">Section 2.2</a> of the
<a class="ulink" href="http://tools.ietf.org/html/rfc5849" target="_top">OAuth 1.0 protocol</a>.
<p>When freeing <em class="parameter"><code>token_secret</code></em>
, it's advisable to set it to all zeros first, to reduce the chance of the sensitive token being recoverable from the
free memory pool and (accidentally) leaked by a different part of the process. This can be achieved with the following code:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="function">memset</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="function">strlen</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret</span><span class="symbol">));</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret</span><span class="symbol">);</span>
<span class="cbracket">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-request-authentication-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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>token</p></td>
<td class="parameter_description"><p>return location for the temporary credentials token returned by the authentication service; free with <a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out callee-allocates</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>token_secret</p></td>
<td class="parameter_description"><p>return location for the temporary credentials token secret returned by the authentication service; free with
<a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out callee-allocates</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../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>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../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="gdata-oauth1-authorizer-request-authentication-uri.returns"></a><h4>Returns</h4>
<p>the URI of an authentication page for the user to use; free with <a href="../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>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-request-authentication-uri-async"></a><h3>gdata_oauth1_authorizer_request_authentication_uri_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_oauth1_authorizer_request_authentication_uri_async
                               (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Requests a fresh unauthenticated token from the Google accounts service and builds and returns the URI of an authentication page for that token.
<em class="parameter"><code>self</code></em>
 is reffed when this method is called, so can safely be unreffed after this method returns.</p>
<p>For more details, see <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a>, which is the synchronous version of this method.</p>
<p>When the operation is finished, <em class="parameter"><code>callback</code></em>
 will be called. You can then call <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri-finish" title="gdata_oauth1_authorizer_request_authentication_uri_finish ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri_finish()</code></a> to get the
results of the operation.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-request-authentication-uri-async.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../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>callback</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncReadyCallback</span> to call when building the URI is finished</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to the <em class="parameter"><code>callback</code></em>
function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-request-authentication-uri-finish"></a><h3>gdata_oauth1_authorizer_request_authentication_uri_finish ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
gdata_oauth1_authorizer_request_authentication_uri_finish
                               (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncResult</span> *async_result</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **token</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **token_secret</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Finishes an asynchronous authentication URI building operation started with <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri-async" title="gdata_oauth1_authorizer_request_authentication_uri_async ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri_async()</code></a>.</p>
<p>This method can fail if the server has returned an error, but this is unlikely. If it does happen, a <a class="link" href="GDataService.html#GDATA-SERVICE-ERROR-PROTOCOL-ERROR:CAPS"><code class="literal">GDATA_SERVICE_ERROR_PROTOCOL_ERROR</code></a> will be
raised, <em class="parameter"><code>token</code></em>
 and <em class="parameter"><code>token_secret</code></em>
 will be set to <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will be returned.</p>
<p>When freeing <em class="parameter"><code>token_secret</code></em>
, it's advisable to set it to all zeros first, to reduce the chance of the sensitive token being recoverable from the
free memory pool and (accidentally) leaked by a different part of the process. This can be achieved with the following code:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="function">memset</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="function">strlen</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret</span><span class="symbol">));</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">token_secret</span><span class="symbol">);</span>
<span class="cbracket">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-request-authentication-uri-finish.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>async_result</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncResult</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>token</p></td>
<td class="parameter_description"><p>return location for the temporary credentials token returned by the authentication service; free with <a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out callee-allocates</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>token_secret</p></td>
<td class="parameter_description"><p>return location for the temporary credentials token secret returned by the authentication service; free with
<a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out callee-allocates</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../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="gdata-oauth1-authorizer-request-authentication-uri-finish.returns"></a><h4>Returns</h4>
<p>the URI of an authentication page for the user to use; free with <a href="../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>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-request-authorization"></a><h3>gdata_oauth1_authorizer_request_authorization ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gdata_oauth1_authorizer_request_authorization
                               (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *token</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *token_secret</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *verifier</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Requests authorization of the given request <em class="parameter"><code>token</code></em>
 from the Google accounts service using the given <em class="parameter"><code>verifier</code></em>
 as entered by the user from the
authentication page at the URI returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a>. <em class="parameter"><code>token</code></em>
 and <em class="parameter"><code>token_secret</code></em>
 must be the same values
as were returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a> if it was successful.</p>
<p>If the verifier is valid (i.e. the user granted access to the application and the Google accounts service has no reason to distrust the client),
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> will be returned and any operations performed from that point onwards on <a class="link" href="GDataService.html" title="GDataService"><span class="type">GDataService</span></a>s using this <a class="link" href="GDataAuthorizer.html" title="GDataAuthorizer"><span class="type">GDataAuthorizer</span></a> will be
authorized.</p>
<p>If the user denies access to the application or the Google accounts service distrusts it, a bogus verifier could be returned. In this case, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
will be returned and a <a class="link" href="GDataService.html#GDATA-SERVICE-ERROR-FORBIDDEN:CAPS"><code class="literal">GDATA_SERVICE_ERROR_FORBIDDEN</code></a> error will be raised.</p>
<p>Note that if the user denies access to the application, it may be the case that they have no verifier to enter. In this case, the client can simply
not call this method. The <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> stores no state for authentication operations which have succeeded in calling
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a> but not yet successfully called <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization" title="gdata_oauth1_authorizer_request_authorization ()"><code class="function">gdata_oauth1_authorizer_request_authorization()</code></a>.</p>
<p>This method implements <a class="ulink" href="http://tools.ietf.org/html/rfc5849#section-2.3" target="_top">Section 2.3</a> of the</p>
<a class="ulink" href="http://tools.ietf.org/html/rfc5849" target="_top">OAuth 1.0 protocol</a>.
<div class="refsect3">
<a name="gdata-oauth1-authorizer-request-authorization.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>token</p></td>
<td class="parameter_description"><p>the request token returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>token_secret</p></td>
<td class="parameter_description"><p>the request token secret returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>verifier</p></td>
<td class="parameter_description"><p>the verifier entered by the user from the authentication page</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../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>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../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="gdata-oauth1-authorizer-request-authorization.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if authorization was successful, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-request-authorization-async"></a><h3>gdata_oauth1_authorizer_request_authorization_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_oauth1_authorizer_request_authorization_async
                               (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *token</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *token_secret</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *verifier</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Requests authorization of the given request <em class="parameter"><code>token</code></em>
 from the Google accounts service using the given <em class="parameter"><code>verifier</code></em>
 as entered by the user.
<em class="parameter"><code>self</code></em>
, <em class="parameter"><code>token</code></em>
, <em class="parameter"><code>token_secret</code></em>
 and <em class="parameter"><code>verifier</code></em>
 are reffed/copied when this method is called, so can safely be freed after this method returns.</p>
<p>For more details, see <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization" title="gdata_oauth1_authorizer_request_authorization ()"><code class="function">gdata_oauth1_authorizer_request_authorization()</code></a>, which is the synchronous version of this method.</p>
<p>When the operation is finished, <em class="parameter"><code>callback</code></em>
 will be called. You can then call <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization-finish" title="gdata_oauth1_authorizer_request_authorization_finish ()"><code class="function">gdata_oauth1_authorizer_request_authorization_finish()</code></a> to get the
results of the operation.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-request-authorization-async.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>token</p></td>
<td class="parameter_description"><p>the request token returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>token_secret</p></td>
<td class="parameter_description"><p>the request token secret returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>verifier</p></td>
<td class="parameter_description"><p>the verifier entered by the user from the authentication page</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>an optional <span class="type">GCancellable</span>, or <a href="../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>callback</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncReadyCallback</span> to call when authorization is finished</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to the <em class="parameter"><code>callback</code></em>
function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-request-authorization-finish"></a><h3>gdata_oauth1_authorizer_request_authorization_finish ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gdata_oauth1_authorizer_request_authorization_finish
                               (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncResult</span> *async_result</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Finishes an asynchronous authorization operation started with <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authorization-async" title="gdata_oauth1_authorizer_request_authorization_async ()"><code class="function">gdata_oauth1_authorizer_request_authorization_async()</code></a>.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-request-authorization-finish.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>async_result</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncResult</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../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="gdata-oauth1-authorizer-request-authorization-finish.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if authorization was successful, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-get-application-name"></a><h3>gdata_oauth1_authorizer_get_application_name ()</h3>
<pre class="programlisting">const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
gdata_oauth1_authorizer_get_application_name
                               (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>);</pre>
<p>Returns the application name being used on the authentication page at the URI returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a>;
i.e. the value of <a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--application-name" title="The “application-name” property"><span class="type">“application-name”</span></a>.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-application-name.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-application-name.returns"></a><h4>Returns</h4>
<p>the application name, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if one isn't set. </p>
<p><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-get-locale"></a><h3>gdata_oauth1_authorizer_get_locale ()</h3>
<pre class="programlisting">const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
gdata_oauth1_authorizer_get_locale (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>);</pre>
<p>Returns the locale currently being used for network requests, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the locale is the default.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-locale.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-locale.returns"></a><h4>Returns</h4>
<p>the current locale. </p>
<p><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-set-locale"></a><h3>gdata_oauth1_authorizer_set_locale ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_oauth1_authorizer_set_locale (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                    <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *locale</code></em>);</pre>
<p>Set the locale used for network requests to <em class="parameter"><code>locale</code></em>
, given in standard Unix locale format. See <a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--locale" title="The “locale” property"><span class="type">“locale”</span></a> for more details.</p>
<p>Note that while it's possible to change the locale after sending network requests (i.e. calling
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a> for the first time), it is unsupported, as the server-side software may behave unexpectedly.
The only supported use of this method is after creation of the authorizer, but before any network requests are made.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-set-locale.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>locale</p></td>
<td class="parameter_description"><p>the new locale in Unix locale format, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for the default locale. </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>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-get-proxy-uri"></a><h3>gdata_oauth1_authorizer_get_proxy_uri ()</h3>
<pre class="programlisting"><span class="returnvalue">SoupURI</span> *
gdata_oauth1_authorizer_get_proxy_uri (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>);</pre>
<div class="warning">
<p><code class="literal">gdata_oauth1_authorizer_get_proxy_uri</code> has been deprecated since version 0.15.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-get-proxy-resolver" title="gdata_oauth1_authorizer_get_proxy_resolver ()"><code class="function">gdata_oauth1_authorizer_get_proxy_resolver()</code></a> instead, which gives more flexibility over the proxy used.</p>
</div>
<p>Gets the proxy URI on the <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>'s <span class="type">SoupSession</span>.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-proxy-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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-proxy-uri.returns"></a><h4>Returns</h4>
<p>the proxy URI, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; free with <code class="function">soup_uri_free()</code>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-set-proxy-uri"></a><h3>gdata_oauth1_authorizer_set_proxy_uri ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_oauth1_authorizer_set_proxy_uri (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                       <em class="parameter"><code><span class="type">SoupURI</span> *proxy_uri</code></em>);</pre>
<div class="warning">
<p><code class="literal">gdata_oauth1_authorizer_set_proxy_uri</code> has been deprecated since version 0.15.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-set-proxy-resolver" title="gdata_oauth1_authorizer_set_proxy_resolver ()"><code class="function">gdata_oauth1_authorizer_set_proxy_resolver()</code></a> instead, which gives more flexibility over the proxy used.</p>
</div>
<p>Sets the proxy URI on the <span class="type">SoupSession</span> used internally by the <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>. This forces all requests through the given proxy.</p>
<p>If <em class="parameter"><code>proxy_uri</code></em>
 is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, no proxy will be used.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-set-proxy-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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>proxy_uri</p></td>
<td class="parameter_description"><p>the proxy URI, or <a href="../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>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-get-proxy-resolver"></a><h3>gdata_oauth1_authorizer_get_proxy_resolver ()</h3>
<pre class="programlisting"><span class="returnvalue">GProxyResolver</span> *
gdata_oauth1_authorizer_get_proxy_resolver
                               (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>);</pre>
<div class="warning"><p><code class="literal">gdata_oauth1_authorizer_get_proxy_resolver</code> is deprecated and should not be used in newly-written code.</p></div>
<p>Gets the <span class="type">GProxyResolver</span> on the <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>'s <span class="type">SoupSession</span>.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-proxy-resolver.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-proxy-resolver.returns"></a><h4>Returns</h4>
<p>a <span class="type">GProxyResolver</span>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix19.html#api-index-0.15.0">0.15.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-set-proxy-resolver"></a><h3>gdata_oauth1_authorizer_set_proxy_resolver ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_oauth1_authorizer_set_proxy_resolver
                               (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                <em class="parameter"><code><span class="type">GProxyResolver</span> *proxy_resolver</code></em>);</pre>
<p>Sets the <span class="type">GProxyResolver</span> on the <span class="type">SoupSession</span> used internally by the given <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>.</p>
<p>Setting this will clear the <a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--proxy-uri" title="The “proxy-uri” property"><span class="type">“proxy-uri”</span></a> property.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-set-proxy-resolver.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>proxy_resolver</p></td>
<td class="parameter_description"><p>a <span class="type">GProxyResolver</span>, or <a href="../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>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix19.html#api-index-0.15.0">0.15.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-get-timeout"></a><h3>gdata_oauth1_authorizer_get_timeout ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
gdata_oauth1_authorizer_get_timeout (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>);</pre>
<p>Gets the <a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--timeout" title="The “timeout” property"><span class="type">“timeout”</span></a> property; the network timeout, in seconds.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-timeout.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-get-timeout.returns"></a><h4>Returns</h4>
<p> the timeout, or <code class="code">0</code></p>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-oauth1-authorizer-set-timeout"></a><h3>gdata_oauth1_authorizer_set_timeout ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_oauth1_authorizer_set_timeout (<em class="parameter"><code><a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> *self</code></em>,
                                     <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> timeout</code></em>);</pre>
<p>Sets the <a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--timeout" title="The “timeout” property"><span class="type">“timeout”</span></a> property; the network timeout, in seconds.</p>
<p>If <em class="parameter"><code>timeout</code></em>
 is <code class="code">0</code>, network operations will never time out.</p>
<div class="refsect3">
<a name="gdata-oauth1-authorizer-set-timeout.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>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>timeout</p></td>
<td class="parameter_description"><p>the timeout, or <code class="code">0</code></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GDataOAuth1Authorizer-struct"></a><h3>GDataOAuth1Authorizer</h3>
<pre class="programlisting">typedef struct _GDataOAuth1Authorizer GDataOAuth1Authorizer;</pre>
<p>All the fields in the <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a> structure are private and should never be accessed directly.</p>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GDataOAuth1AuthorizerClass"></a><h3>GDataOAuth1AuthorizerClass</h3>
<pre class="programlisting">typedef struct {
} GDataOAuth1AuthorizerClass;
</pre>
<p>All the fields in the <a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1AuthorizerClass" title="GDataOAuth1AuthorizerClass"><span class="type">GDataOAuth1AuthorizerClass</span></a> structure are private and should never be accessed directly.</p>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
</div>
<div class="refsect1">
<a name="GDataOAuth1Authorizer.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GDataOAuth1Authorizer--application-name"></a><h3>The <code class="literal">“application-name”</code> property</h3>
<pre class="programlisting">  “application-name”         <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
<p>The human-readable, translated application name for the client, to be presented to the user on the authentication page at the URI
returned by <a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a>.</p>
<p>If <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is provided in the constructor to <a class="link" href="GDataOAuth1Authorizer.html" title="GDataOAuth1Authorizer"><span class="type">GDataOAuth1Authorizer</span></a>, the value returned by <a href="../glib/glib-Miscellaneous-Utility-Functions.html#g-get-application-name"><code class="function">g_get_application_name()</code></a> will be used as a
fallback. Note that this may also be <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>: in this case, the authentication page will use the application name “anonymous”.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: NULL</p>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GDataOAuth1Authorizer--locale"></a><h3>The <code class="literal">“locale”</code> property</h3>
<pre class="programlisting">  “locale”                   <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
<p>The locale to use for network requests, in Unix locale format. (e.g. "en_GB", "cs", "de_DE".) Use <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for the default "C" locale
(typically "en_US").</p>
<p>This locale will be used by the server-side software to localise the authentication and authorization pages at the URI returned by
<a class="link" href="GDataOAuth1Authorizer.html#gdata-oauth1-authorizer-request-authentication-uri" title="gdata_oauth1_authorizer_request_authentication_uri ()"><code class="function">gdata_oauth1_authorizer_request_authentication_uri()</code></a>.</p>
<p>The server-side behaviour is undefined if it doesn't support a given locale.</p>
<p>Flags: Read / Write</p>
<p>Default value: NULL</p>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GDataOAuth1Authorizer--proxy-resolver"></a><h3>The <code class="literal">“proxy-resolver”</code> property</h3>
<pre class="programlisting">  “proxy-resolver”           <span class="type">GProxyResolver</span> *</pre>
<p>The <span class="type">GProxyResolver</span> used to determine a proxy URI.  Setting this will clear the <a class="link" href="GDataOAuth1Authorizer.html#GDataOAuth1Authorizer--proxy-uri" title="The “proxy-uri” property"><span class="type">“proxy-uri”</span></a> property.</p>
<p>Flags: Read / Write</p>
<p class="since">Since: <a class="link" href="ix19.html#api-index-0.15.0">0.15.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GDataOAuth1Authorizer--proxy-uri"></a><h3>The <code class="literal">“proxy-uri”</code> property</h3>
<pre class="programlisting">  “proxy-uri”                <span class="type">SoupURI</span> *</pre>
<p>The proxy URI used internally for all network requests.</p>
<div class="warning">
<p><code class="literal">GDataOAuth1Authorizer:proxy-uri</code> has been deprecated since version 0.15.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GDataClientLoginAuthorizer.html#GDataClientLoginAuthorizer--proxy-resolver" title="The “proxy-resolver” property"><span class="type">“proxy-resolver”</span></a> instead, which gives more flexibility over the proxy used.</p>
</div>
<p>Flags: Read / Write</p>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GDataOAuth1Authorizer--timeout"></a><h3>The <code class="literal">“timeout”</code> property</h3>
<pre class="programlisting">  “timeout”                  <a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
<p>A timeout, in seconds, for network operations. If the timeout is exceeded, the operation will be cancelled and
<a class="link" href="GDataService.html#GDATA-SERVICE-ERROR-NETWORK-ERROR:CAPS"><code class="literal">GDATA_SERVICE_ERROR_NETWORK_ERROR</code></a> will be returned.</p>
<p>If the timeout is <code class="code">0</code>, operations will never time out.</p>
<p>Flags: Read / Write</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.26.1</div>
</body>
</html>