I’m using DropNet for Dropbox OAuth but I have one major problem – I can’t store access token key and secret cause there is no point storing them. The storing mechanism is not a problem and not a key problem here – the problem is in this:
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);
}
}
The problem here is – first time it uploads ok, but the second time it doesn’t – although dropboxLoggedIn is true, and access token key and secret are stored ok, it doesn’t upload file, but more strangely it doesn’t return any error or exception.
If I move GetToken out of if same thing happens. I know I’m doing somewhere wrong, but I can’t quite get where.
I’ve striped some parts of code like file paths and getting the file which are irrelevant.
I did the same thing for Twitter, but it works there with no problems.
Any ideas?
Ok, so the problem was in initialization of the object – if you do:
This wouldn’t work – instead it needs to be initialized like this:
I’m not sure where I found the first code sample in some documentation or forum but it’s wrong. If you use it – no error or exception will happen, but dropbox file upload or operation won’t be done. If you use the second one all will work.