我使用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)中傳遞正確的值' –