在Web C#项目中使用Box Windows(.NET)V2 API

时间:2013-07-22 14:26:45

标签: box-api

是否可以将以下SDK用于Web应用程序:

https://github.com/box/box-windows-sdk-v2

规范称它针对Windows和Windows Phone应用程序的.NET框架,但我无法弄清楚Web .NET项目。此SDK是否严格适用于本机Windows和Windows手机应用程序?

我从来没有在C#中使用过等待/异步函数,这可能是我无法解决的问题。我已经能够成功获得oauth2令牌/刷新令牌,但不知道从哪里开始。任何人都可以看看或提供如何检索文件夹详细信息的示例?

谢谢!

1 个答案:

答案 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;
    }
}