使用 C++ 访问 Ubuntu 的密码存储

使用 C++ 访问 Ubuntu 的密码存储

我正在尝试用 C++ 编写一个使用存储在 Gnome Keyring 中的 Ubuntu One OAuth 令牌的应用程序,但是在 Gnome 或 Ubuntu One 开发者网站上都找不到任何告诉我如何执行此操作的文档。

Ubuntu One 网站表示,所有对 Ubuntu One 服务的请求都必须使用有效的 Ubuntu One OAuth 令牌进行签名,但没有说明如何进行。

Gnome API 中关于 Keyring API 的参考只是运行了一个函数列表,没有任何上下文,或者更重要的是,没有任何#include我应该用来将这些函数放入我的程序中的指令。

有谁知道我可以在哪里找到帮助我访问 Ubuntu One OAuth 令牌的文档?

答案1

可能没有文档。但有来源和示例。有几个使用 ubuntu one 的 C 程序可以用作指南。

您可以尝试运行以下命令(当然,如果您的存储库包含源):

apt-get source libubuntuone

其次是

sudo apt-get build-dep libubuntuone

并查看来源。我相信这可能会引起你的兴趣。在u1-music-store.c,第 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));
         }
}

您正在寻找的库是 libsyncdaemon-1.0-dev。至少在 10.10 上。据我所知,您不需要 gnome 中的 keyring API。

相关内容