我正在尝试用 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。