首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Dropnet获取Dropbox访问令牌

使用Dropnet获取Dropbox访问令牌
EN

Stack Overflow用户
提问于 2014-09-11 17:13:28
回答 2查看 1.5K关注 0票数 0

我正在尝试在我的网站上实现文件上传到Dropbox。然而,在用户点击授权我的应用程序后,我很难获得accessToken。

下面是获取URL的代码,URL将返回给客户端,以便在Javascript中打开一个新窗口。

代码语言:javascript
复制
[WebMethod]
public String setUpDropboxOA(String uri, Int32 form_id, String user_auth)
{
    var client = new DropNetClient("xxxxxxxxx", "xxxxxxxxx");
    return client.GetTokenAndBuildUrl(uri);
}

这是我的回调函数:

代码语言:javascript
复制
[WebMethod]
public void AuthorizeDropboxCallback(String oauth_token)
{
    var client = new DropNetClient("xxxxxxxxx", "xxxxxxxxx");
    var accessToken = client.GetAccessToken();
    var jsonObj = new { oauth_token = accessToken.Token, oauth_secret = accessToken.Secret };
    var JSONAuthorizationData = JsonConvert.SerializeObject(jsonObj);
    saveNotification(form_hash, "Dropbox", JSONAuthorizationData, user_id);
}

下面是我在client.GetAccessToken()上遇到的错误:

代码语言:javascript
复制
Exception of type 'DropNet.Exceptions.DropboxException' was thrown.

DropNet的文档说,GetAccessToken有一个过载,允许您指定要使用的令牌,但是我没有看到一个令牌。我觉得这就是问题所在,但我不完全确定。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-12 00:35:43

正如@albattran的回答所示,这是因为您正在创建两个不同的DropNetClient实例。

client.GetTokenAndBuildUrl(uri);

这个方法实际上在引擎盖下做了两件事。1,对Dropbox进行API调用,以获得一个请求令牌,然后使用该请求令牌创建登录url。

要解决这个问题,您需要一种方法来在web请求之间存储该请求令牌。

也许可以考虑一下下面使用会话的方式。

代码语言:javascript
复制
var userToken = client.GetToken();
Session["user_token"] = userToken.Token;
Session["user_secret"] = userToken.Secret;

然后确定回调,读取这些会话变量,并将它们添加到DropNetClient的构造函数重载中。

代码语言:javascript
复制
var token = Session["user_token"];
var secret = Session["user_secret"];
var client = new DropNetClient("XXXX", "XXXX", token, secret);
client.GetAccessToken();
票数 1
EN

Stack Overflow用户

发布于 2014-09-11 20:05:24

我认为您的问题是在不同请求之间丢失DropNetClient实例的结果,您正在创建两个DropNetClient实例。

您需要持久化初始令牌形式GetTokenAndBuildUrl,并在调用GetAccessToken时还原它。

因为oAuth是三个步骤:

  1. 获取请求令牌
  2. 发送用户进行授权,并返回验证器
  3. 使用原始请求令牌和验证器获取访问令牌
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25793378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档