是否可以在没有 Web 界面的情况下以批处理模式使用 Onedrive?

Is it possible to use Onedrive in a batch mode without a web interface?

我正在阅读的所有内容都表明,为了让应用程序使用 onedrive,它必须执行 oauth2 操作才能获得凭据。但是,如果您是一个批处理过程并且没有供您的用户使用的 Web 界面怎么办?

Google 的 API 有一种特殊类型的帐户,称为服务帐户,一旦您设置了它,您就可以通过该帐户控制对所有内容的访问,无需与用户。 onedrive 有这样的东西吗?

我终于找到了。基本思路和google的服务账号是一样的,但是我觉得比较难用。但至少这个概念是支持的。

http://blogs.msdn.com/b/exchangedev/archive/2015/01/21/building-demon-or-service-apps-with-office-365-mail-calendar-and-contacts-apis-oauth2-client-credential-flow.aspx

App-only authentication 不需要提示用户输入凭据,但在 100% 的情况下也不支持它。例如,API 需要用户原则来创建特殊文件夹和解析用户的个人站点。此外,它仅支持 OneDrive for Business,不支持 Consumer。消费者始终要求提示用户进行初始身份验证。

另一种选择是启动某种处理初始用户身份验证的网络服务,即。一个注册页面。这样,您就可以检索用于离线身份验证的刷新令牌并将其存储给用户。从那时起,每次身份验证都可以使用刷新令牌完成,不需要用户提示。