UnityWebRequest Опубликовать ошибку API Google Диска V2 Неверное поле разрешения запроса - PullRequest
0 голосов
/ 21 июня 2020
    List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
    formData.Add(new MultipartFormDataSection("role", "reader"));
    formData.Add(new MultipartFormDataSection("type", "anyone"));

    string url = "https://www.googleapis.com/drive/v2/files/" + fileId + "/permissions";
    UnityEngine.Networking.UnityWebRequest request = UnityEngine.Networking.UnityWebRequest.Post(url, formData);

    string headerAccessToken = "Bearer " + AccessToken;
    request.SetRequestHeader("Authorization", headerAccessToken);
    request.SetRequestHeader("Accept", "application / json");
    request.SetRequestHeader("Content-Type", "application / json");

    yield return request.SendWebRequest();
    Debug.Log(request.downloadHandler.text);

    if (request.isNetworkError || request.isHttpError)
    {
        Debug.Log(request.error);
    }
    else
    {
        Debug.Log("Form upload complete!");
    }

Что не так? Я использую Google Drive API V2 для вставки разрешения через UnityWebRequest. Кажется, проблема с методом отправки PostData «Роль: Читатель, Тип: Любой». Пожалуйста, помогите.

введите описание изображения здесь

1 Ответ

0 голосов
/ 21 июня 2020
    string url = "https://www.googleapis.com/drive/v2/files/" + fileId + "/permissions";
    string bodyJsonString = "\"resource\" : { \"role\" : \"reader\" , \"type\" : \"anyone\" }";
    //string bodyJsonString = "{ \"role\" : \"reader\" , \"type\" : \"anyone\" }";
    var request = new UnityEngine.Networking.UnityWebRequest(url, "POST");
    byte[] bodyRaw = Encoding.UTF8.GetBytes(bodyJsonString);
    request.uploadHandler = (UploadHandler)new UploadHandlerRaw(bodyRaw);
    request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
    request.SetRequestHeader("Authorization", "Bearer " + AccessToken);
    request.SetRequestHeader("Accept", "application / json");
    request.SetRequestHeader("Content-Type", "application / json");

    yield return request.SendWebRequest();
    //yield return request.Send();
    Debug.Log(request.downloadHandler.text);

    if (request.isNetworkError || request.isHttpError)
    {
        Debug.Log(request.error);
    }
    else
    {
        Debug.Log("Form upload complete!");
    }

Пытался найти способ изменить, но проблема осталась. Что я делаю не так?

...