void cb_user_stream_set_proxy_data (CbUserStream *self, const char *token, const char *token_secret) { oauth_proxy_set_token (OAUTH_PROXY (self->proxy), token); oauth_proxy_set_token_secret (OAUTH_PROXY (self->proxy), token_secret); self->proxy_data_set = TRUE; }
static void online_notify (gboolean online, gpointer user_data) { SwServiceTwitter *twitter = (SwServiceTwitter *)user_data; SwServiceTwitterPrivate *priv = twitter->priv; SW_DEBUG (TWITTER, "Online: %s", online ? "yes" : "no"); /* Clear the token and token secret stored inside the proxy */ oauth_proxy_set_token (OAUTH_PROXY (priv->proxy), NULL); oauth_proxy_set_token_secret (OAUTH_PROXY (priv->proxy), NULL); if (online) { if (priv->username && priv->password) { RestProxyCall *call; SW_DEBUG (TWITTER, "Getting token"); /* * Here we use xAuth to transform a username and password into a OAuth * access token. * * http://apiwiki.twitter.com/Twitter-REST-API-Method:-oauth-access_token-for-xAuth */ call = rest_proxy_new_call (priv->proxy); rest_proxy_call_set_function (call, "oauth/access_token"); rest_proxy_call_add_params (call, "x_auth_mode", "client_auth", "x_auth_username", priv->username, "x_auth_password", priv->password, NULL); rest_proxy_call_async (call, _oauth_access_token_cb, (GObject*)twitter, NULL, NULL); /* Set offline for now and wait for access_token_cb to return */ priv->credentials = OFFLINE; } else { priv->credentials = OFFLINE; } } else { g_free (priv->user_id); if (priv->twitpic_proxy) { g_object_unref (priv->twitpic_proxy); priv->twitpic_proxy = NULL; } priv->user_id = NULL; priv->credentials = OFFLINE; sw_service_emit_capabilities_changed ((SwService *)twitter, get_dynamic_caps ((SwService *)twitter)); } }