OneDrive API 和 Azure Active Directory 设置以作为个人帐户上传

OneDrive API and Azure Active Directory setup to upload as personal account

我会尽量简明扼要。

Objective: 能够将填写 HTML 表格后生成的 PDF 文件上传到我的个人 OneDrive。

几天来我一直在研究这个问题,但我终其一生都想不出在 Azure 门户中设置应用程序和权限的正确方法,以使其正常工作。我最初使用的是 Personal Microsoft accounts only 选项,但很快意识到这意味着必须登录。然后我尝试了 Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox) 选项。所以这似乎是朝着正确方向迈出的一步,因为最终用户不需要做任何事情。我可以使用无需登录用户即可使用的应用程序权限。这基本上就是我想要的。

这导致另一个问题,租户没有 SPO 许可证。查了很多,好像要用OneDrive APIs,需要订阅。正如我提到的,我正在使用个人帐户(免费)。

我也试过守护进程(因为我可以使用应用程序权限并在没有用户登录的情况下工作)。但是基于Microsoft Graph Get Files Permissions,个人Microsoft帐户仅支持Delegated权限。

我试图通过 PHP 并使用到处推荐的库来实现这一点。老实说,我发现这比实际情况要复杂得多,但我真的不知道哪里出了问题。

总而言之,我无法回答这些问题:

  1. 是否可以使用个人免费帐户(是否有学生订阅)访问 OneDrive?
  2. 如果是这样,哪种受支持的帐户类型最适合?
  3. 最后,有没有我可以遵循的地方?

P.S。我已经尝试了很多我在这里提到的事情,所以如果有人想到我应该做的事情,请问我,我会更新你。

你已经尝试了很多,得到了很多正确的结论。

要使个人帐户访问个人 OneDrive,您必须使用委派权限。该场景不支持申请权限

我知道您的要求不是交互式登录。很遗憾,不支持将 ROPC flow 用于个人帐户。

所以唯一的选择就是使用auth code flow or implicit grant flow。它们都需要您以交互方式登录。

综上所述,不支持非交互登录上传文件到个人OneDrive