我已经通过Sharpbox工具包使用Dropbox了一段时间了。它基于oAuth1,因此我为我的用户提供了一个装满了oAuth1访问令牌的数据库。
我想转换到新的Dropbox,它是基于oAuth2的。我看到Dropbox的v1规范(reference here)中有一个“v1”端点,但我没有弄清楚如何成功地连接到这个端点,以升级用户的现有令牌。(我正在使用C#/.NET)。
有人能告诉我一些示例代码,这些代码演示了如何创建经过正确验证的调用来执行此操作吗?我认为问题在于如何正确验证/签名请求。(我现有的所有dropbox调用都是由Sharpbox库完成的,所以我看不出它是如何进行身份验证的)。
谢谢!
发布于 2015-11-14 21:23:34
Twitter oAuth 1.0有一个库(请参阅http://www.voiceoftech.com/swhitley/?p=681),它实际上可以轻松地进行oAuth 1.0身份验证的调用。因此,下面的代码似乎对我很好:
oAuthTwitter oat = new oAuthTwitter();
oat.Token = <oauth 1.0 token>;
oat.TokenSecret = <oauth 1.0 secret>;
oat.ConsumerKey = <application key>;
oat.ConsumerSecret = <application secret>;
string resultJSON = oat.oAuthWebRequest(oAuthTwitter.Method.POST, "https://api.dropboxapi.com/1/oauth2/token_from_oauth1", null);发布于 2016-08-04 18:54:22
您可以使用一个简单的rest客户机(如RestSharp)并执行如下的调用
我目前正在xamarin应用程序中这样做,我使用xamarin核心api登录,并获得oauth_token、oauth_consumer_key和oauth_signature。如果您使用oauth1管理c#流,那么很容易获得oauth2令牌。
            var rclient = new RestSharp.RestClient("https://api.dropboxapi.com/1/");
            var rrequest = new RestSharp.RestRequest("oauth2/token_from_oauth1", Method.POST);
            rrequest.AddHeader("Authorization", "OAuth oauth_version=\"1.0\", oauth_signature_method=\"PLAINTEXT\"");
            rrequest.AddParameter("oauth_consumer_key", store.GetConsumerKey());
            rrequest.AddParameter("oauth_token", store.GetAccessToken());
            rrequest.AddParameter("oauth_signature", String.Concat(App.DropboxAppSecret, "&", store.GetAccessTokenSecret()));
            var rresponse = rclient.Execute(rrequest);
            string content = rresponse.Content;https://stackoverflow.com/questions/33700332
复制相似问题