0

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

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

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

我从未在 C# 中使用过 await/async 函数,这可能是我无法弄清楚的地方。我已经能够成功获得一个 oauth2 令牌/刷新令牌,但不知道从这里去哪里。任何人都可以查看或提供如何检索文件夹详细信息的示例吗?

谢谢 !

4

1 回答 1

2

绝对可以在 ASP.NET Web 应用程序中使用 Box Windows SDK。

我最近更新了自述文件,提到 SDK 支持 .NET 4.0 框架,因此只要您的项目针对该框架或更高版本,您就可以开始使用了。如果您正在运行 Visual Studio 的快速版本,很遗憾您将无法打开 SDK 源项目,因为它是作为 PCL(可移植类库)构建的。但是,您仍然可以通过 nuget 获取二进制文件。

在 ASP.NET 中使用 async/await 调用时必须记住的一件重要事情是,您必须在 Page 声明中包含 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”关键字来装饰您的方法签名。微软写了很多关于进一步理解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;
    }
}
于 2013-07-22T22:48:21.363 回答