是否可以将以下SDK用于Web应用程序:
https://github.com/box/box-windows-sdk-v2
规范称它针对Windows和Windows Phone应用程序的.NET框架,但我无法弄清楚Web .NET项目。此SDK是否严格适用于本机Windows和Windows手机应用程序?
我从来没有在C#中使用过等待/异步函数,这可能是我无法解决的问题。我已经能够成功获得oauth2令牌/刷新令牌,但不知道从哪里开始。任何人都可以看看或提供如何检索文件夹详细信息的示例?
谢谢!
答案 0 :(得分:2)
绝对可以在ASP.NET Web应用程序中使用Box Windows SDK。
我最近更新了自述文档,提到SDK支持.NET 4.0框架,因此只要您的项目针对该框架或更高版本,您应该很高兴。如果您运行的是Visual Studio的快速版本,则遗憾的是您将无法打开SDK源项目,因为它是作为PCL(可移植类库)构建的。但是,您仍然可以通过nuget获取二进制文件。
在ASP.NET中使用async / await调用时必须记住的一件重要事情是,必须在页面声明中包含Async =“true”属性:
<%@ Page Language="C#" Async="true" %>
您提到您能够成功获取OAuth2令牌/刷新令牌。我不确定您是否编写了自己的工作流来检索这些令牌,但SDK支持处理为令牌交换授权代码的第二步,如下所示:
public async Task Authenticate(string authCode)
{
BoxConfig config = new BoxConfig("YOUR_CLIENT_KEY", "YOUR_CLIENT_SECRET", new Uri("YOUR_REDIRECT"));
BoxClient client = new BoxClient(config);
await client.Auth.AuthenticateAsync("authCode");
}
请注意,使用async / await时,必须使用“async”关键字修饰方法签名。 Microsoft已撰写了有关进一步了解async/await关键字的精彩文章。
如果您构建了自己的OAuth2工作流,SDK也会接受已完成的OAuth会话。以下是完整的示例,以及在根级文件夹中获取项目的示例:
public partial class WebForm1 : System.Web.UI.Page
{
BoxClient _client;
protected async void Page_Load(object sender, EventArgs e)
{
BoxConfig config = new BoxConfig("YOUR_CLIENT_KEY", "YOUR_CLIENT_SECRET", new Uri("https://YOUR_REDIRECT"));
BoxClient client = new BoxClient(config);
OAuthSession session = new OAuthSession("YOUR_ACCESS_TOKEN", "YOUR_REFRESH_TOKEN", 3600, "bearer");
_client = new BoxClient(config, session);
}
protected async void Button_Click(object sender, EventArgs e)
{
BoxFolder folder = await _client.FoldersManager.GetItemsAsync("0", 10);
string test = folder.Name;
}
}