我已使用此代码(来自Spring.NET Social Dropbox)使用C#Winform应用程序访问Dropbox: https://github.com/spring-projects/spring-net-social-dropbox/blob/master/examples/Spring.ConsoleQuickStart/src/Spring.ConsoleQuickStart/Program.cs
DropboxServiceProvider dropboxServiceProvider = new DropboxServiceProvider(DropboxAppKey, DropboxAppSecret, AccessLevel.Full);
// Authorization without callback url
Console.Write("Getting request token...");
OAuthToken oauthToken = dropboxServiceProvider.OAuthOperations.FetchRequestTokenAsync(null , null).Result;
Console.WriteLine("Done");
OAuth1Parameters parameters = new OAuth1Parameters();
string authenticateUrl = dropboxServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, parameters);
Console.WriteLine("Redirect user for authorization");
Process.Start(authenticateUrl);
Console.Write("Press any key when authorization attempt has succeeded");
Console.ReadLine();
Console.Write("Getting access token...");
AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, null);
OAuthToken oauthAccessToken = dropboxServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result;
Console.WriteLine("Done");
IDropbox dropbox = dropboxServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret);
DropboxProfile profile = dropbox.GetUserProfileAsync().Result;
但我发现可以直接获取访问令牌,如下所述: https://blogs.dropbox.com/developers/2014/05/generate-an-access-token-for-your-own-account/
那么可以使用第二个链接中手动获取的访问令牌来登录Dropbox吗?
我尝试将令牌直接传递给dropboxServiceProvider.GetApi
,但它无效。
答案 0 :(得分:1)
因此可以使用手动获取的访问令牌 第二个链接登录Dropbox?
如果这是你的问题,答案是否定的。你不能。 Dropbox在文档中说明了这一点。
请注意,生成的访问令牌仅适用于您自己的Dropbox 帐户。 将应用部署部署到其他用户后,您需要使用 标准OAuth授权流程,以获取每个用户的令牌。
此外,您正在使用的库上有点。 spring-net-social-dropbox最后更新于2012年11月,而Dropbox API则是OAuth 1.0。现在使用的OAuth2.0版本Dropbox仅在2013年7月宣布。这实际上意味着您使用的是过时的库。
更多当前API的链接:https://www.dropbox.com/developers/core/sdks/other
<强>更新强>
DropNet的文档:http://dropnet.github.io/dropnet.html
答案 1 :(得分:0)
从应用控制台生成的访问令牌是OAuth 2访问令牌,但其余代码似乎使用OAuth 1.如果您使用的库支持OAuth 2,则应该能够使用生成的访问令牌。如果没有,那么我担心你必须通过OAuth流程获得令牌。