OneDrive API与Uni​​ty 3D的集成

问题描述

我想知道是否可以将OneDrive API直接与Unity 3D集成。我正在尝试使用C#将图像文件上传到OneDrive帐户,但是Microsoft的文档没有提及如何实现。

解决方法

一个驱动器仅提供REST API,您可以将其与Web Requests一起使用

假设您已登录,并且具有会话令牌和密钥以及来自API的OneDrive URL,则可以使用PUT请求: PUT /drives/{drive-id}/items/{parent-id}:/{filename}:/content上传图片

void Start() {
    StartCoroutine(Upload());
}

IEnumerator Upload() {
    byte[] myData = System.Text.Encoding.UTF8.GetBytes("This is some test data");
    UnityWebRequest www = UnityWebRequest.Put("ttps://api.onedrive.com/v1.0/drives/{drive-id}/items/{parent-id}:/{filename}:/content",myData);
    //add to www object all header data with session token and content type
    yield return www.SendWebRequest();

    if(www.isNetworkError || www.isHttpError) {
        Debug.Log(www.error);
    }
    else {
        Debug.Log("Upload complete!");
    }
}

您也可以尝试使用社区制作的C#插件,例如:https://github.com/OneDrive/onedrive-sdk-csharp,但他们已经3年没有发布更改了,因此现在可能已经可以工作了