2016-07-05 43 views
0

我一直在試圖將Google雲端硬盤文檔附加到我的php gmail api撰寫框中。將文件從Google雲端硬盤附加到gmail api撰寫郵件

到目前爲止,我已經設法獲得選定文件上的文件ID,但無法找到如何將file.download url附加到郵箱的正確方法。有沒有辦法做到這一點?

我也使用下面的代碼,但顯示錯誤「只有二進制文件可以下載

var downloadUrl = 'https://www.googleapis.com/drive/v2/files/' + file.id + '?alt=media'; 
    //var downloadUrl2 = file.downloadUrl1; 
    if (downloadUrl) { 
    //var accessToken = gapi.auth.getToken().access_token; 
    //debugger; 
    var xhr = new XMLHttpRequest(); 
    xhr.open('GET',downloadUrl); 
    debugger; 
    xhr.setRequestHeader('Authorization', 'Bearer ' + AUTH_TOKEN); 
    xhr.onload = function() { 
    alert(xhr.responseText); 

    }; 
    xhr.onerror = function() { 
    alert('Error'); 
    }; 
    xhr.send(); 
    } else { 
    alert('No Url'); 
    } 

回答

0

我也嘗試使用下面的代碼,但顯示錯誤「只有二進制文件可以下載文件,嘗試下載文件。下載

這意味着你需要將其轉換第一個二進制我建議你考慮使用:

  1. WindowBase64.btoa() - 方法從一個String對象中創建一個base-64編碼的ASCII字符串,其中字符串中的每個字符被視爲一個二進制數據字節。 var encodedData = window.btoa(stringToEncode);

  2. arraybuffer & Uint8Array - 此示例讀取圖像作爲二進制文件並創建從原始字節的8位無符號整數數組 oReq.onload =函數(oEvent){ VAR arrayBuffer = oReq.response; //注意:不是oReq.responseText if(arrayBuffer)var byteArray = new Uint8Array(arrayBuffer); 爲(VAR I = 0;我< byteArray.byteLength;我++){// 做與每個字節的東西陣列 在} } }

從谷歌驅動器連接文件以GMAIL API撰寫郵件

ctrlq tutorial 通過創建符合RFC 2822標準相符的MIME消息開始,並調用Gmail的API來發送指定的消息發送到收件人,抄送和密件抄送頭的收件人。我們使用帶有messages/send方法的/ upload URI來上傳帶有消息的文件,並將uploadType設置爲媒體,以便無需任何元數據即可上傳文件。

Additonal Reading: GMAIL API for sending Email with attachment

相關問題