Advertisement
Guest User

GAS oatuh1への変更方法をお教えください

a guest
Jul 6th, 2015
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.01 KB | None | 0 0
  1. function myFunction() {
  2. ss = SpreadsheetApp.getActiveSpreadsheet();
  3. SpreadsheetApp.setActiveSheet(ss.getSheets()[0]);
  4.  
  5. as = SpreadsheetApp.getActiveSheet();
  6.  
  7. kesu = null;
  8. as.getRange("A4:H800").setValue(kesu);
  9.  
  10.  
  11.  
  12. searchWord = as.getRange("F1").getValue();
  13. if (searchWord != "") {
  14. Logger.log("F1");
  15. search(searchWord, 0);
  16. }
  17.  
  18. searchWord = as.getRange("G1").getValue();
  19. if (searchWord != "") {
  20. Logger.log("G1");
  21. search(searchWord, 0);
  22. }
  23.  
  24. searchWord = as.getRange("H1").getValue();
  25. if (searchWord != "") {
  26. Logger.log("H1");
  27. search(searchWord, 0);
  28. }
  29.  
  30. searchWord = as.getRange("I1").getValue();
  31. if (searchWord != "") {
  32. Logger.log("I1");
  33. search(searchWord, 0);
  34. }
  35.  
  36. searchWord = as.getRange("J1").getValue();
  37. if (searchWord != "") {
  38. Logger.log("J1");
  39. search(searchWord, 0);
  40. }
  41.  
  42. searchWord = as.getRange("K1").getValue();
  43. if (searchWord != "") {
  44. Logger.log("K1");
  45. search(searchWord, 0);
  46. }
  47.  
  48. searchWord = as.getRange("L1").getValue();
  49. if (searchWord != "") {
  50. Logger.log("L1");
  51. search(searchWord, 0);
  52. }
  53.  
  54. searchWord = as.getRange("M1").getValue();
  55. if (searchWord != "") {
  56. Logger.log("M1");
  57. search(searchWord, 0);
  58. }
  59.  
  60. searchWord = as.getRange("N1").getValue();
  61. if (searchWord != "") {
  62. Logger.log("N1");
  63. search(searchWord, 0);
  64. }
  65.  
  66. searchWord = as.getRange("O1").getValue();
  67. if (searchWord != "") {
  68. Logger.log("O1");
  69. search(searchWord, 0);
  70. }
  71.  
  72. searchWord = as.getRange("P1").getValue();
  73. if (searchWord != "") {
  74. Logger.log("O1");
  75. search(searchWord, 0);
  76. }
  77.  
  78. searchWord = as.getRange("Q1").getValue();
  79. if (searchWord != "") {
  80. Logger.log("O1");
  81. search(searchWord, 0);
  82. }
  83.  
  84. searchWord = as.getRange("R1").getValue();
  85. if (searchWord != "") {
  86. Logger.log("O1");
  87. search(searchWord, 0);
  88. }
  89.  
  90. searchWord = as.getRange("S1").getValue();
  91. if (searchWord != "") {
  92. Logger.log("O1");
  93. search(searchWord, 0);
  94. }
  95.  
  96. searchWord = as.getRange("T1").getValue();
  97. if (searchWord != "") {
  98. Logger.log("O1");
  99. search(searchWord, 0);
  100. }
  101.  
  102.  
  103. }
  104.  
  105.  
  106. /**
  107. * TwitterのOAuth設定
  108. */
  109. function setOAuth() {
  110. var oAuthConfig = UrlFetchApp.addOAuthService("twitter");
  111. oAuthConfig.setAccessTokenUrl("https://api.twitter.com/oauth/access_token");
  112. oAuthConfig.setRequestTokenUrl("https://api.twitter.com/oauth/request_token");
  113. oAuthConfig.setAuthorizationUrl("https://api.twitter.com/oauth/authorize");
  114. oAuthConfig.setConsumerKey(UserProperties.getProperty("TWITTER_CONSUMER_KEY"));
  115. oAuthConfig.setConsumerSecret(UserProperties.getProperty("TWITTER_CONSUMER_SECRET"));
  116. }
  117.  
  118. /**
  119. * Twitterでキーワード検索したツイートをスプレッドシートに展開する
  120. *
  121. * @param query 検索キーワード
  122. * @param sheetNum シート番号
  123. */
  124. function search(query, sheetNum) {
  125.  
  126. if (query == "") {
  127. return;
  128. }
  129.  
  130. query = encodeURIComponent(query);
  131.  
  132. var url, options, response, jsonString, json, tweets = [],
  133. ss, as, cell, firstId, lastRow, row = 0, id, result, col, dd ,ff;
  134.  
  135. // Twitter Search APIのURL
  136. var API_URL = "https://api.twitter.com/1.1/search/tweets.json?";
  137.  
  138. try {
  139.  
  140. setOAuth();
  141.  
  142. url = API_URL + "count=50"
  143. + "&q=" + query;
  144. options = {
  145. "oAuthServiceName": "twitter",
  146. "oAuthUseToken": "always"
  147. };
  148.  
  149. try {
  150. response = UrlFetchApp.fetch(url, options);
  151. } catch(e) {
  152. Logger.log(e);
  153. return;
  154. }
  155.  
  156. if (!response) {
  157. Logger.log("no response");
  158. return;;
  159. }
  160.  
  161. jsonString = response.getContentText();
  162. json = Utilities.jsonParse(jsonString);
  163. tweets = json.statuses;
  164.  
  165. if (tweets.length === 0) {
  166. Logger.log("no tweets");
  167. return;
  168. }
  169.  
  170. // 保存するシートを指定する
  171. ss = SpreadsheetApp.getActiveSpreadsheet();
  172. SpreadsheetApp.setActiveSheet(ss.getSheets()[sheetNum]);
  173.  
  174. as = SpreadsheetApp.getActiveSheet();
  175. cell = as.getRange("A4");
  176. firstId = tweets[tweets.length - 1].id_str;
  177.  
  178. row = 0;
  179.  
  180. lastRow = as.getLastRow();
  181.  
  182. // 取得済みのツイートを上書きしないように出力開始行を設定する
  183. for (var i = 0; i < lastRow; i++) {
  184.  
  185. id = cell.offset(i, 0).getValue();
  186. Logger.log(id + ":" + firstId);
  187.  
  188. if(firstId == id || !id) {
  189. break;
  190. }
  191. row++;
  192. }
  193.  
  194. Logger.log("row");
  195. Logger.log(row);
  196.  
  197. //重複確認
  198. if (lastRow == 3) {
  199. lastRowDate = null;
  200. lastRowText = null;
  201. } else {
  202. lastRowDate = cell.offset(lastRow-4, 1).getValue();
  203. lastRowText = cell.offset(lastRow-4, 2).getValue();
  204. lastRowUser = cell.offset(lastRow-4, 4).getValue();
  205. }
  206.  
  207. // D1セルに最終行の日時を表示
  208. as.getRange("D1").setValue(lastRowDate);
  209.  
  210. // スプレッドシートに出力
  211. for (var i = tweets.length - 1; i >= 0; i--) {
  212.  
  213. result = tweets[i];
  214. col = 0;
  215. dd = new Date(result.created_at);
  216.  
  217. // E1セルに取得中のtweetの日付を入れる
  218. as.getRange("E1").setValue(dd);
  219.  
  220. // if (lastRowDate <= dd) {
  221. if (lastRowText == null || (lastRowText != result.text && lastRowUser != 'https://twitter.com/' + result.user.screen_name)) {
  222. ff = "";
  223. cell.offset(row, col++).setValue(result.id_str);
  224. ff = result.id_str + "%%x%%";
  225. cell.offset(row, col++).setValue(dd);
  226. ff = ff + dd + "%%x%%";
  227. cell.offset(row, col++).setValue(result.user.name);
  228. ff = ff + result.user.name + "%%x%%";
  229. cell.offset(row, col++).setValue(result.text);
  230. ff = ff + result.text + "%%x%%";
  231. cell.offset(row, col++).setValue('https://twitter.com/'
  232. + result.user.screen_name
  233. + "/status/"
  234. + result.id_str);
  235. ff = ff + "https://twitter.com/" + result.user.screen_name + "/status/" + result.id_str + "%%x%%";
  236. cell.offset(row, col++).setValue('https://twitter.com/'
  237. + result.user.screen_name);
  238. ff = ff + "https://twitter.com/" + result.user.screen_name + "%%x%%";
  239. if (result.entities.urls.length > 0) {
  240. cell.offset(row, col++).setValue(result.entities.urls[0].expanded_url);
  241. ff = ff + result.entities.urls[0].expanded_url + "%%x%%";
  242. }
  243. else {
  244. cell.offset(row, col++).setValue("");
  245. ff = ff + "%%x%%";
  246. }
  247. cell.offset(row, col++).setValue(ff);
  248. row++;
  249. }
  250. // }
  251. }
  252.  
  253. } catch (e) {
  254. Logger.log(e);
  255. }
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement