0

添付ファイル付きGmailの下書きを作成するためのGoogleスプレッドシートにスクリプトがバインドされています(下のスクリプトが添付されています。これには、他のユーザーがスクリプト内とGoogle Developer Consoleの両方でGmail APIを有効にする必要があります。Googleシートのバインドされたスクリプトを使用するGoogleデベロッパーコンソールでエラーが発生する

ファイルの所有者として、私はそれをうまくやり遂げることができます。ただし、他のユーザーがGoogle Developer ConsoleでGmail APIを有効にしようとすると、「このページを表示するための十分な権限がありません」というエラーメッセージが表示されます。

誰かが間違っていると知っていますか?これはバグですか、私は(ファイル所有者として)何かすべきですか?

function callGmailAPI_(message) { 
    var payload = createMimeMessage_(message); 
    var response = UrlFetchApp.fetch(
     "https://www.googleapis.com/upload/gmail/v1/users/me/drafts?uploadType=media", { 
    method: "POST", 
    headers: { 
    "Authorization": "Bearer " + ScriptApp.getOAuthToken(), 
    "Content-Type": "message/rfc822", 
    }, 
    muteHttpExceptions: true, 
    payload: payload 
}); 

Logger.log(response.getResponseCode()); 
Logger.log(response.getContentText()); 
} 

function encode_(subject) { 
var enc_subject = Utilities.base64Encode(subject, Utilities.Charset.UTF_8); 
return '=?utf-8?B?' + enc_subject + '?='; 
} 

function createMimeMessage_(msg) { 

var nl = "\n"; 
var boundary = "__test_dot_com__"; 

var mimeBody = [ 

"MIME-Version: 1.0", 
"To: "  + msg.to.email, 
"Cc: "  + msg.cc.email, 
"Subject: " + encode_(msg.subject), 

"Content-Type: multipart/alternative; boundary=" + boundary + nl, 
"--" + boundary, 

"Content-Type: text/plain; charset=UTF-8", 
"Content-Transfer-Encoding: base64" + nl, 
Utilities.base64Encode(msg.body.text, Utilities.Charset.UTF_8) + nl, 
"--" + boundary, 

"Content-Type: text/html; charset=UTF-8", 
"Content-Transfer-Encoding: base64" + nl, 
Utilities.base64Encode(msg.body.html, Utilities.Charset.UTF_8) + nl 

]; 

for (var i = 0; i < msg.files.length; i++) { 

var attachment = [ 
    "--" + boundary, 
    "Content-Type: " + msg.files[i].mimeType + '; name="' + msg.files[i].fileName + '"', 
    'Content-Disposition: attachment; filename="' + msg.files[i].fileName + '"', 
    "Content-Transfer-Encoding: base64" + nl, 
    msg.files[i].bytes 
]; 

mimeBody.push(attachment.join(nl)); 
} 
mimeBody.push("--" + boundary + "--"); 
return mimeBody.join(nl); 
} 

答えて

0

これは、threadから、これは2つのアカウントアクセスが原因である可能性があります。他のすべてのアカウントをログアウトして、1つのアカウントしかログインしないでください。それが他のアカウントでログインしてやり直してみてください。

は、これらに関連する問題を確認してください:あなたの特定の問題については

を、私はnew consoleold oneの両方で、別のブラウザをしようと、すべてのログアウトしようとするだろう。

この情報がお役に立てば幸い!

関連する問題