跳到主要內容

發表文章

目前顯示的是 九月, 2013的文章

Apps Script中使用其他Apps Script的程式碼

Apps Script雖然語法相似於JavaScript,但是畢竟不是JavaScript 有許多js的特性他沒有... 其中像Node.js的module import的方式,在這邊是不能用的 需要透過library的設定方可以使用其他Script作為library... 下面說明設定的方式:
首先,需要找出要被import的library的project key 位置在File > Project properties中


打開後,畫面如下:


提取Project key的部份...先記下來
然後,在需要import的目的Script中,點選Resources > Manage libraries


打開後畫面如下:


這邊的"Find a Library"中,填寫入欲import的Script的Project key 然後點選select,上面欄位就會出現該library 並且有version與deployment mode部分可以選擇 其中version部分,需要在來源端的Script中指定Script的版本號碼 以便讓目的端可以調用不同版本的操作... 另外,Identifier欄位是到時候目的端Script會使用到的instance name 讓Web IDE可以支援"."的操作來叫出可以執行的function...


這樣,就可以直接從一個Script File去呼叫另一個Script File來做操作了∼趕快去定義自己的Apps Script Libraries吧!
最後,操作Library時候需要小心,因為一個Script可以開多個Script File,如上圖,列表在最左邊部分的 但是當Script被當做Library被呼叫時候,只有第一個Script的內容可以被正常執行(我猜是Bug...G大神還沒時間解...)

Google Cloud Platform - CloudSQL使用過程記錄

今天介紹GCP(Google Cloud Platform)之下的DB生力軍:CloudSQL

透過新版本的Cloud Console(https://cloud.google.com/console)來建立一個Cloud MySQL instance並不難,原則上是填妥資料一步一步往下走就可以完成...

完成後建置的DB Instance會列表在CloudSQL的預設頁面中...

建立好的CloudSQL Instance必須透過Google Cloud SDK中的google_sql.sh來執行... 安裝Cloud SDK可以在cloud console中的最下面找到SDK的下載點 SDK的大部分功能是使用Python實作 即使Java的版本,中間也離步開Python...

安裝=解壓縮...  安裝好之後,偷看一下google_sql.sh的原始碼(shell script)

原來是透過google_sql.jar來做連線,這應該意味著Remote Java要存取CloudSQL也可以透過google_sql.jar來做連線 :D
透過sdk使用CloudSQL前需要先讓sdk進行認證 認證是透過sdk底下的bin/gauth來做認證... 過程中會開啟瀏覽器讓你點選同意 然後畫面會自動關閉,回到console畫面...等到看到success時候,代表認證已經完成 :D
接下來來做連線DB與DB的基本操作... 連線方式是透過bin/google_sql.sh [instance id]來做連線

連線進入之後,操作與一般MySQL無異
而資料的匯入也不難... 與mysql操作相仿,可以透過"<"來將sql檔案導入 下面是操作:

之前已經有介紹透過Apps Script來連線CloudSQL(這裡),這邊就不多說... 至於GAE連線CloudSQL,理論上需要在CloudSQL的授權部分加上GAE專案的Project ID 然後GAE服務就可以直接連線存取,相關說明,可以參考這裡...

Google Cloud Platform - CloudSQL使用過程記錄

今天介紹GCP(Google Cloud Platform)之下的DB生力軍:CloudSQL
透過新版本的Cloud Console(https://cloud.google.com/console)來建立一個Cloud MySQL instance並不難,原則上是填妥資料一步一步往下走就可以完成...


完成後建置的DB Instance會列表在CloudSQL的預設頁面中...


建立好的CloudSQL Instance必須透過Google Cloud SDK中的google_sql.sh來執行... 安裝Cloud SDK可以在cloud console中的最下面找到SDK的下載點 SDK的大部分功能是使用Python實作 即使Java的版本,中間也離步開Python...


安裝=解壓縮...  安裝好之後,偷看一下google_sql.sh的原始碼(shell script)


原來是透過google_sql.jar來做連線,這應該意味著Remote Java要存取CloudSQL也可以透過google_sql.jar來做連線 :D
透過sdk使用CloudSQL前需要先讓sdk進行認證 認證是透過sdk底下的bin/gauth來做認證... 過程中會開啟瀏覽器讓你點選同意 然後畫面會自動關閉,回到console畫面...等到看到success時候,代表認證已經完成 :D

接下來來做連線DB與DB的基本操作... 連線方式是透過bin/google_sql.sh [instance id]來做連線


連線進入之後,操作與一般MySQL無異
而資料的匯入也不難... 與mysql操作相仿,可以透過"<"來將sql檔案導入 下面是操作:


之前已經有介紹透過Apps Script來連線CloudSQL(這裡),這邊就不多說... 至於GAE連線CloudSQL,理論上需要在CloudSQL的授權部分加上GAE專案的Project ID 然後GAE服務就可以直接連線存取,相關說明,可以參考這裡...

Apps Script連線MySQL或CloudSQL

Apps Script中連線資料庫也是使用jdbc connection string的方式來連結感覺起來這邊似乎背後是透過GAE(畢竟也是Java Base的)來連線...(純猜的...) 下面先看看透過Apps Script來連線一般MySQL資料庫的方法:

function testMySQL(){   var conn = Jdbc.getConnection('jdbc:mysql://DB_IP_ADDRESS:DB_PORT/DB_NAME', 'USERNAME', 'PASSWORD');   var stmt = conn.createStatement();   stmt.setMaxRows(100);   var start = new Date();   var sql = "select * from customers";   var rs = stmt.executeQuery(sql);   Logger.log('SQL:' + sql);   while(rs.next()){     Logger.log('['+new Date().toString() + ']' + rs.getString(1) + '::' + rs.getString(2) );   } }
上面範例中connection string的部份,DB_IP_ADDRESS為資料庫的IP位置,DB_PORT為資料庫的連線埠號,記得也把USERNAME與PASSWORD也改一下唷∼ 連線建立完成後,後面的操作也與Java版本相仿 透過建立statement之後,使用statment實體執行sql語句 最後透過result set將值fetch出來...
而Google的Cloud SQL也一樣可以在Apps Script中進行操作 操作之前,先了解一些資訊.... 在新的API Console中,我們可以找到Instance ID,這個值之後建立connection string時候需要填入


上面設定好後,可以使用這個function來連線CloudSQL,其中INSTANCE_ID就是上圖的Instance ID位置的值:
function te…

Apps Script for Google Calendar with SMS notify

Calendar是Google旗下一門重要的產品而不少G-Fans都有發現Calendar擁有免費的SMS通知功能(參考:https://developers.google.com/apps-script/articles/gmail_filter_sms) 既然如此,透過Apps Script來觸發這個Event是在好不過 因為Apps Script完美的整合Google旗下許許多多的產品 讓你可以透過簡單的SDK使用該服務...
下面展示使用Apps Script建立一個Calendar Event 並且透過Calendar的一些設定,就可以讓Apps Script做到SMS通知...

Step1: 建立一個Google Calendar
建立行事曆的過程頗簡單,這邊不介紹... 當行事曆建立完成,在行事曆旁邊的下拉三角形點一下,就可以進入行事曆的詳細設定頁面(如下)


在這個頁面中,有三個頁籤,第一個頁籤往下拉會看到Calendar ID的值 這邊需要把它記錄下來,之後寫程式會用到...


Step2: 設定通知,並啟用簡訊通知
在日曆詳細頁面的第三個是提醒與通知中,在最下面的可以設定啟用簡訊通知的目的電話號碼(日後有分享給其他使用者時,需要請該使用者也註冊電話號碼,否則就無法收到訊息),然後再第一欄"New Event"的部份勾取SMS,這樣只要有新的Calendar Event進來,就會發出通知...


Step3: 建立Apps Script
來到最後一個步驟...如果曾經試過Apps Script去開過Calendar Project的話,會發現建立Calendar Event如此簡單.... 下面function就是實際建立Calendar Event的程式碼,而其中加上了幾個部分
calendarId: 日曆ID,就是上面詳細頁面中顯示的那個ID值addSmsReminder(0): 表示直接發送SMS通知
function createEvent() { var calendarId = '9s...1c@group.calendar.google.com';   var cal = CalendarApp.getCalendarById(calendarId);   var title = 'Script Demo Event';   v…