我在网络客户端中使用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;
}
答案 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),但不适用于我的情况。