Google Drive Api v3创建共享文件 [英] Google Drive Api v3 Create Shared File

查看:310
本文介绍了Google Drive Api v3创建共享文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


$ b $

  drive.files.create({
resource:{
name:'Another File 5',
mimeType:'text / plain',
} ,
媒体:{
mimeType:'text / plain',
body:'它是另一个他妈的文件',
}

(err)console.log(err)
else console.log(result)
});函数(err,result){
if

现在我要创建一个共享shared:true 它给我这个错误:

  drive.files.create({
resource:{
name:'Another File 5',
mimeType:'text / plain',
shared:true
},
media:{
mimeType:' text / plain',
body:'It'\\'s Fuking File',
}

},function(err,result){
if( err)console.log(err)
else console.log(result)
});

错误:

 < 
错误:
[{domain:'global',
原因:'fieldNotWritable',
message:'资源体包含不能直接写入的字段。'}}}

我在Google API资源管理器中尝试了这一点,并给出了相同的错误。



我对Google Api很陌生,非常感谢任何帮助。

解决方案

create的请求主体上没有共享属性。这已经被讨论



其讨论的内容共享文件部分,您需要致电 drive.permissions.create 并设置您将与之共享的帐户的相应权限。



我也在API Explorer上测试了它,并且它可以工作。

  var fileId ='1sTWaJ_j7PkjzaBWtNc3IzovK5hQf21FbOw9yLeeLPNQ'; 
drive.permissions.create({
resource:{
'type':'user',
'role':'writer',
'emailAddress': 'example@appsrocks.com'
},
fileId:fileId,
fields:'id',
},function(err,res){
if( err){
//处理错误
console.log(err);
} else {
console.log('Permission ID:',res.id)
drive.permissions.create({
resource:{
'type':'domain',
'role':'reader',$ b $'domain':'appsrocks。 com'
},
fileId:fileId,
字段:'id',
},函数(err,res){
if(err){
//处理错误
console.log(err);
} else {
console.log('Permission ID:',res.id)
}
});
}
});


I am using Node.js google-api client for creating file in google drive normally when i create file everything work fine , here is an example :

drive.files.create({
      resource: {
        name: 'Another File 5',
        mimeType: 'text/plain',
      },
      media: {
        mimeType: 'text/plain',
        body: 'It\'s Another Fucking File',
      }

    }, function(err,result){
        if(err) console.log(err) 
        else console.log(result)
    });

Now i want create a shared "shared": true its give me this error :

drive.files.create({
  resource: {
    name: 'Another File 5',
    mimeType: 'text/plain',
    "shared": true
  },
  media: {
    mimeType: 'text/plain',
    body: 'It\'s Another Fucking File',
  }

}, function(err,result){
    if(err) console.log(err) 
    else console.log(result)
});

Error :

{ [Error: The resource body includes fields which are not directly writable.]
  code: 403,
  errors: 
   [ { domain: 'global',
       reason: 'fieldNotWritable',
       message: 'The resource body includes fields which are not directly writable.' } ] }

I tried this in Google APIs Explorer and gave same error.

I am new to google Api and appreciate any help.

解决方案

There's no shared attribute on the request body of create. This has been discussed

Its discussed int he Share Files section of the Drive API documentation, you'll need to call drive.permissions.create and set the appropriate permission of the account you'll share with.

I tested this on the API Explorer as well, and it works.

var fileId = '1sTWaJ_j7PkjzaBWtNc3IzovK5hQf21FbOw9yLeeLPNQ';
drive.permissions.create({
    resource: {
        'type': 'user',
        'role': 'writer',
        'emailAddress': 'example@appsrocks.com'
    }, 
        fileId: fileId,
        fields: 'id',
    }, function(err, res) {
    if (err) {
        // Handle error
        console.log(err);
    } else {
        console.log('Permission ID: ', res.id)
        drive.permissions.create({
            resource: {
                'type': 'domain',
                'role': 'reader',
                'domain': 'appsrocks.com'
            },
            fileId: fileId,
            fields: 'id',
            }, function(err, res) {
                if (err) {
                // Handle error
                console.log(err);
            } else {
                console.log('Permission ID: ', res.id)
            }
        });
    }
});

这篇关于Google Drive Api v3创建共享文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆