2017-01-13 36 views
1

我已經通過gmail API授權了一個小型節點應用程序。我正在成功獲得答覆。例如,我可以使用users.settings.sendAs.list()GmailAPI - Node.js - 無法更新用戶簽名

但是,當我嘗試對設置進行更改時,在這種情況下再次簽名,我返回的響應是空的。因此,更新工作在我可以擦除手動添加到gmail中的簽名,但我無法添加任何新內容。

這裏的腳本

var google = require('googleapis'); 
var key = require('./Sig-Updater.json'); 
var gmail = google.gmail('v1'); 

var jwtClient = new google.auth.JWT(
    key.client_email, 
    null, 
    key.private_key, 
    ['https://www.googleapis.com/auth/gmail.settings.basic', 'https://www.googleapis.com/auth/gmail.settings.sharing', 'https://www.googleapis.com/auth/gmail.modify', 'https://mail.google.com', 'https://www.googleapis.com/auth/gmail.compose', 
'https://www.googleapis.com/auth/gmail.readonly' ], 
    '[email protected]' 
); 

jwtClient.authorize(function (err, tokens) { 
    if (err) { 
    console.log('Auth failed because: ' + err); 
    return; 
    } 
    console.log(tokens) 

    gmail.users.settings.sendAs.update({ 
    userId: 'me', 
    auth: jwtClient, 
    sendAsEmail: '[email protected]', 
    signature: '<div dir="ltr">Hello there</div>' 
    }, function (err, resp) { 
    if(err){ 
     console.log(err); 
    } else { 
     console.log(resp); 
    } 
    }); 
}); 

對不起任何小白業務 - 新的這個API和node.js的確實

回答

2

看起來像我的菜鳥免責聲明到底在必要的,

我從請求中省略了「資源」對象。

應該看起來更像

gmail.users.settings.sendAs.update({ 
userId: 'me', 
auth: jwtClient, 
sendAsEmail: '[email protected]', 
fields: 'signature', 
resource: { 
    signature: '<div dir="ltr">Hello there</div>' 
    }  
}, function (err, resp) { 
    if(err){ 
     console.log(err); 
    } else { 
     console.log(resp); 
    } 
}); 

希望幫助別人的未來!