我可以在Microsoft Graph上使用Unity3D进行OAuth 2登录,我为我的应用程序请求了此权限:
https://graph.microsoft.com/files.readwrite.appfolder
在通常的代码流(重定向到URL、用户的权限、身份验证代码与令牌代码交换以及令牌与承载身份验证代码交换)之后,我就可以登录了。
问题是上载小文件不起作用:
https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_put_content
我认为这是我能做的最好的:
string myData = File.ReadAllText(Application.persistentDataPath + "/" + "provaupload.json");
using (UnityWebRequest www = UnityWebRequest.Post("https://graph.microsoft.com/v1.0/me/drive/root:/AppTry/provaupload.json:/createUploadSession", myData)) {
www.SetRequestHeader("Authorization", "Bearer <code>");
www.SetRequestHeader("Content-Type", "application/json");
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError) {
Debug.Log(www.error + " " + www.downloadHandler.text);
} else {
Debug.Log("Upload complete! " + www.downloadHandler.text);
}
}
我得到这个错误:
Generic/unknown HTTP error {
"error": {
"code": "BadRequest",
"message": "Unable to read JSON request payload. Please ensure Content-Type header is set and payload is of valid JSON format.",
"innerError": {
"request-id": "id",
"date": "2018-07-20T06:24:30"
}
}
我还尝试了www类,或者用put代替post,但是我得到了“无效的api”。
可能我的问题出在基本URL中:
https://graph.microsoft.com/v1.0/me
或者可能在路上
根目录:/apptry/provaupload.json
或者在许可证里。
我真的不知道。
如果您知道如何使用Microsoft Graph和一个驱动器进行REST调用(即使不在Unity3D中,甚至不知道如何解决我的特定问题),那么最好举个例子。