Advertisement
VidyaPriyadarshini

GetMessage

Aug 22nd, 2014
774
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.53 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Module>
  3. <ModulePrefs title="Hello World"
  4. description="Matches and echoes 'Hello World' string in emails"
  5. height="20"
  6. author="Sarah M and Walter Q"
  7. author_email="..."
  8. author_location="Mountain View, CA">
  9.  
  10. <!-- Declare feature dependencies. -->
  11.  
  12. <!-- This one is not specific to Gmail contextual gadgets. -->
  13. <Require feature="dynamic-height"/>
  14.  
  15. <!-- The next feature, Caja, is optional, and is supported for
  16. use only within test domains. Uncomment the tag only for
  17. non-production gadgets. -->
  18. <!-- <Require feature="caja"/> -->
  19.  
  20. <!-- The next feature, google.contentmatch, is required for all
  21. Gmail contextual gadgets.
  22. <Param> - specify one or more comma-separated extractor IDs in
  23. a param named "extractors". This line is overridden by the extractor ID
  24. in the manifest, but is still expected to be present. -->
  25. <Require feature="google.contentmatch">
  26. <Param name="extractors">
  27. google.com:MessageIDExtractor
  28. </Param>
  29. </Require>
  30.  
  31. </ModulePrefs>
  32.  
  33. <!-- Define the content type and display location. The settings
  34. "html" and "card" are required for all Gmail contextual gadgets. -->
  35. <Content type="html" view="card">
  36. <![CDATA[
  37. <!-- Start with Single Sign-On -->
  38. <!--script type="text/javascript" src="https://example.com/gadgets/sso.js"></script-->
  39. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  40. <script type="text/javascript">
  41.  
  42. <!-- Fetch the array of content matches. -->
  43. matches = google.contentmatch.getContentMatches();
  44. var matchList = document.createElement('UL');
  45. var listItem;
  46. var extractedText;
  47. var messageIds;
  48. var messageId;
  49. var messageIdList = document.createElement('UL');
  50. var para = document.createElement("p");
  51. var apiKey = 'AIzaSyBDDcH3TEmfyitCTYzk5VZx7YwiZyNtXlQ';
  52.  
  53. var scopes = ["https://www.googleapis.com/auth/gmail.modify","https://www.googleapis.com/auth/gmail.readonly","https://mail.google.com/","https://www.googleapis.com/auth/userinfo.email"];
  54.  
  55. var clientId = '1095931665697-ipmo6t5o9ul8kj5ofa0pjvg0h33iut1q.apps.googleusercontent.com';
  56.  
  57.  
  58. <!-- Iterate through the array and display output for each match. -->
  59. for (var match in matches) {
  60. for (var key in matches[match]) {
  61. listItem = document.createElement('LI');
  62. extractedText = document.createTextNode(key + ": " + matches[match][key]);
  63. messageIds = document.createElement('LI');
  64. messageId = matches[match][key];
  65. var node = document.createTextNode(handleClientLoad(messageId));
  66. para.appendChild(node);
  67. listItem.appendChild(extractedText);
  68. matchList.appendChild(listItem);
  69. }
  70. }
  71. document.body.appendChild(matchList);
  72. gadgets.window.adjustHeight(100);
  73.  
  74. function handleClientLoad(messageId) {
  75. alert("in");
  76. var authToken = 'ya29.bAC47ogaMYA1_CEAAADiF6y35mun3mXAVC9rOxQ4WSf6GxotiiN9TKM_II_XeAMnojgsxYYqN_nh3flpZ-w';
  77. $.ajax({
  78. url: "https://www.googleapis.com/gmail/v1/users/me/messages/" + messageId,
  79. method: "GET",
  80. headers: {
  81. "Authorization": "Bearer " + authToken,
  82. "Accept" : "application/json"
  83. },
  84. success: function(data){
  85. console.log(data);
  86. var byteCharacters = data.snippet;
  87. var byteNumbers = new Array(byteCharacters.length);
  88. for (var i = 0; i < byteCharacters.length; i++) {
  89. byteNumbers[i] = byteCharacters.charCodeAt(i);
  90. }
  91. var byteArray = new Uint8Array(byteNumbers);
  92. var blob = new Blob([byteArray]);
  93.  
  94. console.log("blob is" + blob);
  95. makeFrame(blob);
  96. $.each( data.payload.parts, function( key, value ) {
  97. console.log(value.body.data);
  98. return value.body.data ;
  99. });
  100. return blob;
  101. },
  102. error: function() {
  103. console.log("gmail get: error");
  104. },
  105. complete: function() {
  106. console.log("gmail: complete");
  107.  
  108. }
  109. });
  110.  
  111. }
  112.  
  113.  
  114. function makeFrame(blob) {
  115. ifrm = document.createElement("IFRAME");
  116. ifrm.setAttribute("src", "https://www.yousendit.com");
  117. ifrm.setAttribute("id","myFrame");
  118. ifrm.setAttribute("name","myFrame");
  119. ifrm.style.width = 950+"px";
  120. ifrm.style.height = 950+"px";
  121. var authToken = '414347187.fca4f9125c4d202508950fc8fa100cdd0030b9c3';
  122. document.body.appendChild(ifrm);
  123.  
  124. alert("new way");
  125. console.log("Make Frame blob is " + blob);
  126. var authToken =
  127. 'HMV0AFK27ZU6r1qv5RxAjXsUSYdPwPVteLqJaeQmhKf5Kn6tD4zUgxROoCo16JOK_S3b_bwB3IV%2B2ESCBqwKgo%2BCOS0ukM9FmOVfCJ4shRY18ayEKeJoHXQQkKhr'+
  128. 'i1POuPkGddcnEFsiZn2xuCAj0VJqjDE7KgEIl2grDoOEGRI';
  129.  
  130. $( "#myFrame" ).on( "load", { blob: blob, authToken: authToken }, initUpload);
  131.  
  132. function initUpload(event) {
  133. event.preventDefault();
  134. console.log("inside initUpload blob is" + blob);
  135. var formData = new FormData();
  136. var uploadUrl;
  137. var fileId;
  138. $.ajax({
  139. url: "https://test2-api.yousendit.com/dpi/v1/folder/file/initUpload",
  140. method: "POST",
  141.  
  142.  
  143. headers: {
  144. "X-Auth-Token": 'HMV0AFK27ZU6r1qv5RxAjXsUSYdPwPVteLqJaeQmhKf5Kn6tD4zUgxROoCo16JOK_S3b_bwB3IV%2B2ESCBqwKgo%2BCOS0ukM9FmOVfCJ4shRY18ayEKeJoHXQQkKhr'+
  145. 'i1POuPkGddcnEFsiZn2xuCAj0VJqjDE7KgEIl2grDoOEGRI',
  146. "X-Api-Key": "27pk27nee7xart6342yebyfn",
  147. "Accept" : "application/json",
  148. },
  149. success: function(data){
  150. console.log("init upload: success",data);
  151. fileId = data.fileId;
  152. console.log("fileId is" + fileId);
  153. uploadUrl = data.uploadUrl[0] + "/";
  154. var srcUrl = uploadUrl.split('.');
  155.  
  156. var frmUrl = srcUrl[0] + "." + srcUrl[1] + ".com";
  157. console.log("frm url" + frmUrl);
  158. formData.append("bid", fileId);
  159. formData.append("fname", blob);
  160. var ifrm1 = document.createElement("IFRAME");
  161. ifrm1.setAttribute("src", frmUrl);
  162. ifrm1.setAttribute("id","myFrame1");
  163. ifrm1.setAttribute("name","myFrame1");
  164. ifrm1.style.width = 350+"px";
  165. ifrm1.style.height = 350+"px";
  166. var myform=document.createElement("form");
  167. myform.setAttribute("id","frm");
  168. myform.setAttribute("name","frm");
  169. document.body.appendChild(myform);
  170. ifrm1.appendChild(myform);
  171. document.body.appendChild(ifrm1);
  172.  
  173.  
  174.  
  175. },
  176. error: function() {
  177. console.log("init upload: error");
  178. },
  179. complete: function(data) {
  180. console.log("init upload: complete");
  181.  
  182. }
  183. }).then(function() { console.log("Finally working"); });
  184.  
  185.  
  186. $( document ).ajaxSuccess(function( event, xhr, settings ) {
  187. console.log( "Triggered ajaxSuccess handler. The ajax response was: " +
  188. xhr.responseText );
  189. var response = JSON.parse(xhr.responseText);
  190. console.log("resonse is " + response);
  191. fileId = response.fileId;
  192. uploadUrl = response.uploadUrl;
  193. formData.append("bId", fileId);
  194. formData.append("fname", blob,"HightailRocks.txt");
  195.  
  196. $( "#myFrame1" ).on( "load", { formData: formData, uploadUrl: uploadUrl, fileId: fileId }, xhrframe);
  197. }); }
  198.  
  199. function xhrframe(event) {
  200.  
  201. console.log("xhr framme"+ event.data.formData + event.data.uploadUrl);
  202. var xhr = new XMLHttpRequest();
  203. xhr.open("POST",event.data.uploadUrl,true);
  204.  
  205. xhr.setRequestHeader("Accept","application/json");
  206. xhr.send(event.data.formData);
  207. xhr.onreadystatechange=function()
  208. {
  209. console.log(xhr.responseText);
  210.  
  211. $.ajax({
  212. url: "https://test2-api.yousendit.com/dpi/v1/folder/file/commitUpload",
  213. method: "POST",
  214. headers: {
  215. "X-Api-Key": "27pk27nee7xart6342yebyfn",
  216. "Accept" : "application/json",
  217. "X-Auth-Token":"HMV0AFK27ZU6r1qv5RxAjXsUSYdPwPVteLqJaeQmhKf5Kn6tD4zUgxROoCo16JOK_S3b_bwB3I"+
  218. "V%2B2ESCBqwKgo%2BCOS0ukM9FmOVfCJ4shRY18ayEKeJoHXQQkKhri1POuPkGddcnEFsiZn2xuCAj0VJqjDE7KgEIl2grDoOEGRI"
  219. },
  220. data: { parentId: "0", fileId: event.data.fileId },
  221. success: function(data){
  222. console.log(data);
  223. },
  224. error: function() {
  225. console.log("commit upload: error");
  226. },
  227. complete: function() {
  228. console.log("commit upload: complete");
  229.  
  230. }
  231. });
  232. }
  233. }
  234. function startUpload(event, formData,uploadUrl,authToken) {
  235. console.log("inside second", formData, uploadUrl, authToken);
  236. return $.ajax({
  237. url: uploadUrl,
  238. method: "POST",
  239. headers: {
  240. "X-Auth-Token": 'HMV0AFK27ZU6r1qv5RxAjXsUSYdPwPVteLqJaeQmhKf5Kn6tD4zUgxROoCo16JOK_S3b_bwB3IV%2B2ESCBqwKgo%2BCOS0ukM9FmOVfCJ4shRY18ayEKeJoHXQQkKhr'+
  241. 'i1POuPkGddcnEFsiZn2xuCAj0VJqjDE7KgEIl2grDoOEGRI',
  242. "X-Api-Key": "27pk27nee7xart6342yebyfn",
  243. "Accept" : "application/json",
  244. "Content-Type": "multipart/form-data"
  245. },
  246. data: formData,
  247. processData: false,
  248. contentType: false,
  249. success: function(data){
  250. console.log("start upload: success",data);
  251. alert("starting" + data);
  252. },
  253. error: function() {
  254. console.log("start upload: error");
  255. },
  256. complete: function() {
  257. console.log("start upload: complete");
  258. }
  259. });
  260.  
  261. }
  262. }
  263.  
  264.  
  265. </script>
  266.  
  267. </script>
  268. <button id="authorize-button" onclick="handleClientLoad()">Authorize</button>
  269. <script src="https://apis.google.com/js/client.js"></script>
  270. ]]>
  271. </Content>
  272. </Module>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement