带有服务器.Net文件的Google Picker客户端下载403禁止访问

时间:2017-01-24 17:55:01

标签: .net google-drive-api httpwebrequest google-picker

我在网络客户端中使用Google选择器允许用户授权我的应用程序并选择要下载的文件。我检索所选文件的fileId和oauthToken,并将其传递到我的后端,类似于我在此处找到的内容(Google picker and backend file download)。

后端进程是.Net,我使用下面显示的代码提交文件请求。但是,当我发送相同的Url,FileId和oAuthToken信息时,即使相同的Get请求在Postman中正常工作,我也会收到403 Forbidden错误。

有关设置HttpWebRequest可能出错的任何想法吗?

public void Download(string pOAuthToken, string pFileId, string pFileName) {
    HttpWebRequest request;
    HttpWebResponse response;

    bool result = false;
    string url = "";

    try {
        url = "https://www.googleapis.com/drive/v3/files/" + pFileId + "?alt=media";
        request = WebRequest.Create(url);
        request.Headers.Add("Authorization", ("Bearer " + pOAuthToken));

        response = request.GetResponse();

        //  Insert code to download file here

        result = true;
    }
    catch (Exception ex) {
        LogError("Download exception.", ex);
    }
    finally {
        response.Close();
    }

    return result;
}

1 个答案:

答案 0 :(得分:0)

我可以使用Google Drive REST API的第2版来解决此问题:

url =" https://www.googleapis.com/drive/ v2 / files /" + pFileId +"?alt = media";

文档表明这也适用于版本3(https://developers.google.com/drive/v3/web/manage-downloads),但不适用于我的情况。