Acessando o armazenamento de senhas do Ubuntu usando C ++

5

Estou tentando escrever um aplicativo em C ++ que usa o token OAuth do Ubuntu One armazenado no Gnome Keyring, mas não consigo encontrar nenhuma documentação nos sites de desenvolvedores do Gnome ou do Ubuntu One que me dizem como fazer isso .

O site do Ubuntu One diz que todos os pedidos para o serviço Ubuntu One devem ser assinados com um token válido do Ubuntu One OAuth, mas não diz como fazer isso.

A referência da API do Gnome para a API Keyring simplesmente executa uma lista de funções sem nenhum contexto ou, mais importante, a diretiva #include que eu deveria usar para colocar essas funções em meu programa.

Alguém sabe onde posso encontrar qualquer documentação que me ajude a acessar o token OAuth do Ubuntu One?

    
por Chris Wilson 10.06.2011 / 16:34

1 resposta

4

Pode não haver documentação. Mas existem fontes e exemplos. Existem alguns programas em C que usam o Ubuntu, que você pode usar como guias.

Você pode tentar executar o seguinte (se seus repositórios incluírem fontes, é claro):

apt-get source libubuntuone

Seguido por

sudo apt-get build-dep libubuntuone

e confira as fontes. Eu acredito que isso possa ser de interesse. Em u1-music-store.c , linha 229.

static void
get_credentials (U1MusicStore *music_store,
                 gchar **oauth_consumer_token,
                 gchar **oauth_consumer_secret,
                 gchar **oauth_token,
                 gchar **oauth_token_secret)
{
        SyncdaemonCredentials *credentials;

        *oauth_consumer_token = *oauth_consumer_secret = *oauth_token = *oauth_token_secret = NULL;

        /* Get the OAuth token from the keyring */
         if ((credentials = syncdaemon_authentication_find_credentials (
                      syncdaemon_daemon_get_authentication (music_store->priv->syncdaemon)))) {
                *oauth_consumer_token = g_strdup (syncdaemon_credentials_get_consumer_key (credentials));
                *oauth_consumer_secret = g_strdup (syncdaemon_credentials_get_consumer_secret (credentials));
                *oauth_token = g_strdup (syncdaemon_credentials_get_token (credentials));
                *oauth_token_secret = g_strdup (syncdaemon_credentials_get_token_secret (credentials));
         }
}

A biblioteca que você está procurando é libsyncdaemon-1.0-dev. Pelo menos na 10.10. Até onde eu posso ver, você não precisa da API do keyring do gnome.

    
por H Marcelo Morales 15.06.2011 / 20:12