2016-08-24 4 views
1

를 사용하지 않고 메시지를 보내 : 나는 웹 사이트에있는 양식에서 API 요청을 테스트했다 https://developers.google.com/gmail/api/v1/reference/users/messages/send#examples의 Gmail API 내가이 인터페이스를 사용하고 Base64로 인코딩

.

TUlNRS1WZXJzaW9uOiAxLjANClJlY2VpdmVkOiBieSAxMC4xOTQuNjguMjI3IHdpdGggSFRUUDsgV2VkLCAyNCBBdWcgMjAxNiAwMjo1OToxNyAtMDcwMCAoUERUKQ0KRGF0ZTogV2VkLCAyNCBBdWcgMjAxNiAxMTo1OToxNyArMDIwMA0KRGVsaXZlcmVkLVRvOiBrcnVub0B1bGl4dHJhdmVsLmNvbQ0KTWVzc2FnZS1JRDogPENBSzB5QmZZeEgwS1dGbng2TzNfZ3ZNRkxtVlB5RVY9NjdnQW5qRWdPaHIzSGZOTkJCUUBtYWlsLmdtYWlsLmNvbT4NClN1YmplY3Q6IFRoaXMgaXMgYSBzdWJqZWN0DQpGcm9tOiBLcnVub3NsYXYgVUxJWFRyYXZlbCA8a3J1bm9AdWxpeHRyYXZlbC5jb20-DQpUbzogS3J1bm9zbGF2IEJhbm92YWMgPGt1bm9rZGV2QGdtYWlsLmNvbT4NCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0wNDdkN2JhZTQ5NjRhMmQ3MzAwNTNhY2U1NWUxDQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMQ0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04DQoNClRoaXMgaXMgYSBib2R5DQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgNCg0KPGRpdiBkaXI9Imx0ciI-VGhpcyBpcyBhIGJvZHk8YnI-PC9kaXY-DQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMS0t 

가 어떻게 대신 메일을 보낼 수 (예 : 제목, 보낸 사람, reciver입니다, 메시지 본문 등)의 기본 매개 변수를 사용합니까 : 그것은 원시 Base64로 문자열과 같은 인코딩이 필요합니다?

답변

2

먼저 설명한대로 FromSubject과 같은 헤더가있는 메시지를 작성해야하지만 메시지를 보내기 전에 인코딩해야합니다. 그 주위에 방법이 없습니다.

자바 스크립트의 예는 JQuery와의 사용으로, 다음과 같습니다

// Base64-encode the mail and make it URL-safe 
// (replace all "+" with "-" and all "/" with "_") 
var encodedMessage = btoa([ 
    "From: [email protected]\r\n", 
    "To: [email protected]\r\n", 
    "Subject: Subject of the message\r\n\r\n", 

    "This is the text of the message" 
].join("")).replace(/\+/g, '-').replace(/\//g, '_'); 

$.ajax({ 
    method: "POST", 
    url: "https://www.googleapis.com/gmail/v1/users/me/messages/send?access_token={access_token}", 
    contentType: "application/json", 
    data: JSON.stringify({   
    raw: encodedMessage 
    }) 
}); 
+0

하지만 우리는 이러한 문자를 교체 할 필요가 왜 이해가 안? ('+'에서'-', etc ...) – Kunok

+1

이것은 url safe라는 base64 인코딩 형식입니다. 일부 문자를 안전하게 전송할 수 없기 때문에 가끔 필요합니다. [이 답변] (http://stackoverflow.com/questions/1374753/passing-base64-encoded-strings-in-url) 일부 설명 할 수 있습니다. – Tholle

+0

터미널에서 실행되는 Node.js에 사용될 때 https://developers.google.com/gmail/api/v1/reference/users/messages/send#examples legit의 JavaScript 코드 예제가 필요합니까? 'node script.js'로? – Kunok

관련 문제