Javascript 如何使用API google drive更改文件权限
我试图发送正文中的权限类型字段(数据),但未成功 文档表明:在主体上发送权限和角色 文档链接: 我得到了这个答案Javascript 如何使用API google drive更改文件权限,javascript,google-drive-api,Javascript,Google Drive Api,我试图发送正文中的权限类型字段(数据),但未成功 文档表明:在主体上发送权限和角色 文档链接: 我得到了这个答案 { "error": { "errors": [ { "domain": "global", "reason": "required", "message": "The permission type
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "The permission type field is required.",
"locationType": "other",
"location": "permission.type"
}
],
"code": 400,
"message": "The permission type field is required."
}
}
这是我的代码结构,我将不胜感激
const file=this.file;
var FileID=“16myyu1bxfk1tvvmrpicyqdc3snyxsig2”;
const fr=new FileReader();
fr.readAsDataURL(文件);
fr.onload=函数(){
const boundary=“xxxxxxxxx”;
let data=“-->+边界+”\n”;
数据+=“内容类型:应用程序/json;字符集=UTF-8\n\n”;
data+=JSON.stringify({role:“reader”,键入:“anywhere”})+“\n”;
$.ajax({
类型:“POST”,
发送前:功能(请求){
setRequestHeader(“授权”、“承载”+“”+localStorage.getItem(“accessToken”);
request.setRequestHeader(“内容类型”,“边界=+边界”);
},
url:“https://www.googleapis.com/drive/v3/files/“+FileID+”/permissions”,
成功:功能(数据){
控制台日志(数据);
},
错误:函数(错误){
console.log(错误);
},
async:true,
数据:数据,
cache:false,
processData:false,
超时:60000
});
}
我相信你的目标和情况如下
- 您希望使用ajax将权限创建为
{role:“reader”,键入:“anywhere”}
- 您的访问令牌可用于使用驱动器API创建权限
- 在这种情况下,
可以像请求头的JSON.stringify({role:“reader”,type:“anyone”})
一样直接使用data:JSON.stringify({role:“reader”,type:“anyone”})
- 请使用
作为请求头的内容类型application/json
const boundary = "xxxxxxxxxx";
let data = "--" + boundary + "\n";
data += "Content-Type: application/json; charset=UTF-8\n\n";
data += JSON.stringify({role: "reader", type: "anyone"}) + "\n";
$.ajax({
type: "POST",
beforeSend: function(request) {
request.setRequestHeader("Authorization", "Bearer" + " " + localStorage.getItem("accessToken"));
request.setRequestHeader("Content-Type", "boundary=" + boundary);
},
url: "https://www.googleapis.com/drive/v3/files/" + FileID + "/permissions",
success: function (data) {
console.log(data);
},
error: function (error) {
console.log(error);
},
async: true,
data: data,
cache: false,
processData: false,
timeout: 60000
});
$.ajax({
type: "POST",
beforeSend: function(request) {
request.setRequestHeader("Authorization", "Bearer" + " " + localStorage.getItem("accessToken"));
request.setRequestHeader("Content-Type", "application/json"); // Modified
},
url: "https://www.googleapis.com/drive/v3/files/" + FileID + "/permissions",
success: function (data) {
console.log(data);
},
error: function (error) {
console.log(error);
},
async: true,
data: JSON.stringify({role: "reader", type: "anyone"}), // Modified
cache: false,
processData: false,
timeout: 60000
});