我正在尝试用 C++ 编写一个应用程序,该应用程序使用存储在 Gnome 密钥环中的 Ubuntu One OAuth 令牌,但在 Gnome 或 Ubuntu One 开发人员站点上找不到任何文档来告诉我如何执行此操作。
Ubuntu One 站点表示,对 Ubuntu One 服务的所有请求都必须使用有效的 Ubuntu One OAuth 令牌进行签名,但它没有说明如何执行此操作。
Keyring API 的 Gnome API 参考只是运行一个没有任何上下文的函数列表,或者更重要的是#include,我应该用来将这些函数导入我的程序的指令。
有谁知道我在哪里可以找到任何帮助我访问 Ubuntu One OAuth 令牌的文档?
可能没有文档。但有来源和例子。有几个使用 ubuntu 的 C 程序,您可以将其用作指南。
您可以尝试运行以下命令(当然,如果您的存储库包含源):
apt-get source libubuntuone
Run Code Online (Sandbox Code Playgroud)
其次是
sudo apt-get build-dep libubuntuone
Run Code Online (Sandbox Code Playgroud)
并查看来源。我相信这可能会引起兴趣。上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));
}
}
Run Code Online (Sandbox Code Playgroud)
您正在寻找的库是 libsyncdaemon-1.0-dev。至少在10.10。据我所知,您不需要 gnome 的密钥环 API。