通过google api创建到Google驱动器的文件夹后,没有得到文件夹ID作为响应

问题描述 投票:0回答:1

我正在使用其余端点,创建时未获取文件夹ID。应该做出回应,但不存在。文件夹创建成功。

url:https://www.googleapis.com/drive/v3/files

public static async void CreateFolder(string accessToken, string brandFolderName)
{
    var gDriveItems = await GetFoldersByBrand(accessToken,brandFolderName);
    if (gDriveItems.Any(x=>x.Name.ToLower() == brandFolderName.ToLower()))
    {
        return;
    }

    var request = new HttpRequestMessage(HttpMethod.Post, "drive/v3/files");
        request.Headers.Add("Authorization", "Bearer "+ accessToken);
        request.Headers.Add("Accept","application/json");

    JsonObject jsonFolderObject = new JsonObject();
    jsonFolderObject.Add("name", brandFolderName);
    jsonFolderObject.Add("mimeType", "application/vnd.google-apps.folder");
    var data = JsonConvert.SerializeObject(jsonFolderObject);

    request.Content = new StringContent(data, Encoding.UTF8, "application/json");
    var responce = await _httpClient.SendAsync(request);
    var mm = responce.Content.ReadAsStringAsync();
    responce.EnsureSuccessStatusCode();
}
c# .net google-api google-drive-api google-oauth
1个回答
0
投票

作为参考,这是我的代码,用于添加新文件夹。

  • 我使用Google.Apis.Drive.v3
  • [serviceDriveService的实例,具有创建文件夹/文件的相关范围。

这会给我result中新文件夹的ID

    private static async Task<File> CreateRankingsFolder(DriveService service, 
        string driveId, 
        string parentId, 
        string folderName = "YOURFOLDERNAME")
    {
        File result = null;

        try
        {

            File body = new File();
            body.Name = folderName;
            body.MimeType = "application/vnd.google-apps.folder";
            body.DriveId = driveId;
            if (!string.IsNullOrEmpty(parentId))
            {
                var _parents = new List<string>()
                {
                    parentId
                };
                body.Parents = _parents;
            }

            // service is an authorized Drive API service instance
            var req = service.Files.Create(body);

            result = await req.ExecuteAsync();



        }
        catch(Exception e)
        {

        }

        return result;
    }
© www.soinside.com 2019 - 2024. All rights reserved.