Microsoft onedrive:使用API​​密钥创建文件夹而无需登录

时间:2019-02-12 06:04:21

标签: c# onedrive

我可以使用Graph API在onedrive中创建文件夹和文件。但是,第一次我必须登录到Microsoft帐户。以下是我需要登录的链接:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id={client_id}&redirect_uri={redirect_uri}&response_mode=form_post&response_type=code+id_token&scope={scope}&state={state}&nonce={nonce}&x-client-SKU={x-client-SKU}&x-client-ver={x-client-ver}

我希望实现所有这些服务器端。不登录Microsoft帐户怎么办?如果可以使用一些控制台代码,那么我认为可以做到。

1 个答案:

答案 0 :(得分:1)

我执行了以下步骤来创建控制台应用程序以在OneDrive中创建文件夹:

1。创建Microsoft应用:

  1. 登录https://apps.dev.microsoft.com/
  2. 创建一个新应用
  3. 输入一些应用名称
  4. 在“应用程序秘密”部分生成新密码
  5. 在“平台”部分中添加平台。
  6. 添加了Web平台
  7. 提供一些重定向网址。这将是必需的,您也可以输入任何localhost URL。我输入了http://localhost:100/
  8. 在“ Microsoft图形权限”部分添加以下代理权限
  9. Files.ReadWriteAll,Directory.ReadWriteAll,offline_access(离线访问是非常重要的权限,没有此权限,您将无法自动生成访问令牌)
  10. 确保在“高级选项”中选中“ LiveSDKSupport”复选框。

2。生成访问令牌的CODE值

  1. 使用您的应用程序ID更新以下网址(步骤1.b)并重定向网址(步骤1.g)。
  2. https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id= {client_id}&scope = User.Read User.ReadWrite User.ReadBasic.All Mail.Send Calendars.ReadWrite Mail.ReadWrite Files.ReadWrite offline_access&response_type = code&redirect_uri = {redirect_url}
  3. 在浏览器地址栏中粘贴URL并进行获取请求(按回车键)
  4. 登录到您的一个驱动器帐户
  5. 接受用户协议
  6. 代码重定向URL并从重定向URL获取代码查询字符串

3。生成访问令牌并根据代码值刷新令牌

  1. 打开邮递员
  2. 使用以下设置进行发帖请求: 端点:https://login.microsoftonline.com/common/oauth2/v2.0/token
    • 标题>内容类型:application / x-www-form-urlencoded
    • 身体>
    • client_id:您从第1步开始的客户端/应用ID
    • redirect_uri:您从第1步开始的重定向网址
    • client_secret:您的客户端密码(在步骤1中生成的应用密码)
    • 代码:第2步中生成的代码
    • grant_type:授权码
  3. 这将返回带有一些值的json。从响应中复制access_token和refresh_token。访问令牌可用于在一个驱动器中创建文件夹。但是,这将在一段时间后生效。要获取新令牌,我们将需要使用刷新令牌生成新令牌。因此,将刷新令牌与客户端ID客户端密钥和重定向URL一起存储在配置文件中。

4。通过代码生成访问令牌:

  1. 这可以通过Postman以及使用带有以下参数的简单post请求从代码中完成:
    • 端点:https://login.microsoftonline.com/common/oauth2/v2.0/token
    • 方法:发布
    • 内容类型:application / x-www-form-urlencoded
    • 数据:“ client_id = {client_id}&redirect_uri = {redirect_url}&client_secret = {client_secret}&grant_type = refresh_token&refresh_token = {refresh_token}”
  2. 这将返回访问令牌作为响应。使用该访问令牌在一个驱动器中创建文件夹。

5。在OneDrive中创建文件夹:

  1. 发出发布请求以创建文件夹: