2015-08-03 136 views
4

我正在致力於一個能夠讀取包含圖像url列表的CSV的javascript客戶端。用於發送帶附件的電子郵件的GMAIL API

我能夠通過jquery-csv讀取csv並在html5畫布中繪製每個圖像。

下一步是爲每個圖像應用一個文本圖層並使用gmail api通過電子郵件發送圖像。

所以我的困惑是找到一個例子,告訴我如何拍攝一張畫布並將其附加到只使用JavaScript的電子郵件。

是否有我根據multipart gmail指導原則構建一個json,並將其作爲POST body發送到指定位置?

你能給我舉個例子嗎?

+0

是否要發送畫布爲例如一個PNG圖像? – Tholle

+0

是的......可以在飛行中完成嗎?或者......但主要...... javascrip gmail api使用的是什麼? – Alex

回答

5
// Get the canvas from the DOM and turn it into base64-encoded png data. 
var canvas = document.getElementById("canvas"); 
var dataUrl = canvas.toDataURL(); 

// The relevant data is after 'base64,'. 
var pngData = dataUrl.split('base64,')[1]; 

// Put the data in a regular multipart message with some text. 
var mail = [ 
    'Content-Type: multipart/mixed; boundary="foo_bar_baz"\r\n', 
    'MIME-Version: 1.0\r\n', 
    'From: [email protected]\r\n', 
    'To: [email protected]\r\n', 
    'Subject: Subject Text\r\n\r\n', 

    '--foo_bar_baz\r\n', 
    'Content-Type: text/plain; charset="UTF-8"\r\n', 
    'MIME-Version: 1.0\r\n', 
    'Content-Transfer-Encoding: 7bit\r\n\r\n', 

    'The actual message text goes here\r\n\r\n', 

    '--foo_bar_baz\r\n', 
    'Content-Type: image/png\r\n', 
    'MIME-Version: 1.0\r\n', 
    'Content-Transfer-Encoding: base64\r\n', 
    'Content-Disposition: attachment; filename="example.png"\r\n\r\n', 

    pngData, '\r\n\r\n', 

    '--foo_bar_baz--' 
].join(''); 

// Send the mail! 
$.ajax({ 
    type: "POST", 
    url: "https://www.googleapis.com/upload/gmail/v1/users/me/messages/send?uploadType=multipart", 
    contentType: "message/rfc822", 
    beforeSend: function(xhr, settings) { 
    xhr.setRequestHeader('Authorization','Bearer {ACCESS_TOKEN}'); 
    }, 
    data: mail 
}); 
+0

它給了我這個錯誤:{ 「錯誤」:{ 「錯誤」: { 「域」: 「全局」, 「理由」: 「authError」, 「消息」: 「無效的憑證」, 「的locationType」: 「首標」, 「位置」: 「授權」 } ], 「代碼」:401, 「消息」: 「無效憑證」 } }谷歌顯影劑控制檯上我創建新的客戶端ID與Web應用程序specifingn JavaScript位置來源:http:// localhost:8080 ...我的項目是一個tomcat實例上的JavaScript頁面。奇怪的是,每次我從同一個應用程序發出請求時,訪問令牌都會發生更改。 – Alex

+0

@Alex授權Gmail v1範圍[此處](https://developers.google.com/oauthplayground/),並嘗試從中獲得的令牌。這應該作爲一個測試。 – Tholle

+0

我創建了測試訪問令牌並從您建議我的頁面發送請求。從那裏一切正常。如果我在javascript應用程序中使用相同的標記,它會使我產生與我以前的評論中相同的錯誤。 401未經授權的無效憑證。有什麼處理我的客戶ID創建? – Alex

相關問題