我使用DropNet为Dropbox OAuth,但我有一个主要问题 - 我无法存储访问令牌密钥和秘密原因没有意义存储它们。存储机制是没有问题的,而不是在这里的一个关键问题 - 问题是这个:访问令牌密钥和秘密不在DropNet中工作
private void dropboxUpload()
{
DropNetClient _Dclient = new DropNetClient("xxxxxxxxxxxxxxx", "yyyyyyyyyyyyyyy");
_Dclient.UseSandbox = true;
if (!dropboxLoggedIn)
{
_Dclient.GetToken();
string url = _Dclient.BuildAuthorizeUrl();
Process.Start(url);
if (MessageBox.Show("Click OK after you have allowed Sizester to create and access a sub-folder called Sizester in a folder called Apps in your Dropbox account.", "Sizester access request", MessageBoxButtons.OKCancel) != System.Windows.Forms.DialogResult.OK)
{
return;
}
}
try
{
if (!dropboxLoggedIn)
{
_Dclient.GetAccessToken();
dropboxAsecret = _Dclient.UserLogin.Secret;
dropboxAtoken = _Dclient.UserLogin.Token;
}
else
{
_Dclient.UserLogin.Token = dropboxAtoken;
_Dclient.UserLogin.Secret = dropboxAsecret;
}
dropboxLoggedIn = true;
//...
_Dclient.UploadFile("/", fileE, FileToByteArray(newFilePath));
MessageBox.Show("Successfully uploaded to Dropbox.", "Uploaded to Dropbox");
}
catch (Exception dropboxEx)
{
MessageBox.Show("Error: " + dropboxEx.Message);
}
}
这里的问题是 - 第一次上传不错,但第二次就没有 - 虽然dropboxLoggedIn是真,并且访问令牌密钥和机密都存储好,它不会上传文件,但更奇怪的是它不会返回任何错误或异常。 如果我将GetToken从相同的事情发生时移出。我知道我在某个地方做错了事,但我不知道在哪里。 我已经将文件路径等代码的某些部分分条并获取了不相关的文件。 我为Twitter做了同样的事情,但它在那里工作没有问题。 有什么建议吗?
呵呵,因为用户登录对象在那一点上是空的。可能会添加一个辅助方法来设置,而不是使用UserLogin属性。 – dkarzon
我是唯一一个看到构造函数具有错误参数顺序的人吗?授权后,当您首次登录'_client.UserLogin'时,它会与Secret和Token值不匹配。所以,调试会给你不正确的顺序:你在秘密看到的实际上是令牌,你在令牌中看到的是秘密的。这将帮助您在构造函数'DropnetClient(consumerKey,consumerSecret,userLogintokenkeyFromDebug,userLoginSecretKeyFromDebug)中传递正确的值' –