Selenium Conference 2017

Selenium 是為瀏覽器自動化(Browser Automation)需求所設計的一套工具集合,讓程式可以直接驅動瀏覽器進行各種網站操作。Selenium 執行「真實的瀏覽器」來進行網站操作的自動化,它能夠直接獲取即時的內容,包括被 JavaScript 修改過的 DOM 內容,讓程式可以直接與網頁元素即時互動、執行 JavaScript 程式,因此也適用於前端採用 AJAX 技術的網站。

LINE Developer Meetup #3 開發者小聚 活動後分享

在台灣有許多LINE聊天機器人的開發者,平常都透過論壇交流,LINE TAIWAN團隊為了能讓他們能夠面對面的互動,以及邀請隱身於民間的高手分享其開發撇步,在今年四月底的時候舉辦首場的開發者小聚 LINE DEVELOPER MEETUP TAIWAN ,沒想到公佈報名網址的當天,還不到5小時所有名額就被大家的快手搶光,可見大家已經期盼許久!

利用 Model Controller Testsuite (MCT) 來建構自動化測試

你一定知道 MVC 架構,那 MCT 呢

Model–view–controller (MVC) 架構是一種設計模式 (design pattern),主要目的是用來簡化應用程式的開發與增加程式的可維護性,其做法是將應用程式分成三個邏輯的模組。每一個模組都有各自具體的任務,這樣做是為了將資料的傳遞與呈現給使用者的結果分開表示,透過 MVC 設計模式將這些主要模組分離開來,以實現程式碼的可重複使用性以及根據任務需求分配並行開發。

基於 MVC 架構的優點,工程師也可以將 MVC 提供分層模組化架構的優點應用在開發測試的基礎架構上。因此,這篇文章主要說明以 MVC 開發設計模式為靈感的自動化測試架構 – Model Controller Testsuite (MCT),並描述如何調整以便讓自動化架構更加穩定和可維護。

開發LINE聊天機器人不可不知的十件事

LINE於2016年9月推出Messaging API之後,越來越多開發者投入心力設計各式各樣功能的LINE聊天機器人。然而,撰寫一個LINE聊天機器人除了要有好的應用情境之外,資訊技術上還必須注意一些重要的細節,以免設計出來的聊天機器人上線後無法正常運作。本文分享了作者自身與協助客戶或合作夥伴開發各種LINE聊天機器人所觀察到常見的問題與建議的處理方式,提供給LINE聊天機器人開發者作為參考。

第一件事:正確設定HTTPS

基於資料通訊安全的因素,在LINE平台上開發應用服務的所有資料傳送都必須透過加密通道。因此,當開發者架設LINE Messaging APIWebhook伺服器時,一定要使用HTTPS通訊協定。

在設定HTTPS伺服器時,有下列幾點必須注意的事項:

  1. HTTPS伺服器所使用的根憑證Root CA)必須是在LINE平台的白名單列表中,否則LINE平台會拒絕傳送訊息。在白名單列表中大多數的憑證都需要付費申請,但是LINE平台也支援常用的免費憑證,例如Let’s Encrypt
  2. 請勿使用已知具有安全性漏洞的協定(例如SSL v2或SSL v3)或Cipher Suite(例如SWEET32或CVE-2016-2183)。
  3. 請務必正確設定中繼憑證Intermediate certificate),以避免無法對應到根憑證而發生錯誤。這是最常見的問題通報狀況,請在設定HTTPS伺服器時多加留意。

如果HTTPS伺服器沒有正確設定成功,Webhook程式將無法收到LINE平台的任何事件訊息,並且管理者們會收到來自LINE平台的警示電子郵件,內容的錯誤原因會顯示「UNCLASSIFIED」。建議開發者在設定完成HTTPS伺服器之後,立即使用一些免費工具進行檢查,以確保HTTPS伺服器的可用性。這些免費工具舉例如下:

為什麼我們使用Kotlin開發LINE Creators Studio

前言

哈囉大家好,我是 Freddie Wang, LINE Fukuoka 開發室的軟體工程師。目前擔任 LINE Creators Studio Android 版本的開發。我們最近剛剛完成了 LINE Creators Studio 的 Android 版本。LINE Creators Sudio是 LINE 最新推出的應用程式,可以讓用戶輕鬆的製作自己的貼圖並且上架販賣。在 Android 的版本上我們使用 Kotlin 來開發這個應用程式。所以我想透過此篇文章來分享一下為什麼我們使用 Kotlin 開發以及我們使用了哪些功能。

目前 LINE Creators Studio 只在日本上架,預計之後會在其他地區推出。

Kotlin的優點與主要功能

在今年的 Google IO 17上, Google 正式宣佈將從 Android Studio 3.0 開始提供 Kotlin 的支援,這對 Android 的開發者來說是一個令人非常振奮的消息。在 2016 年底,我們開始了 LINE Creators Studio 的開發工作,並且需要在短時間完成一個 MVP (Minimum Viable Product)。在那個時間點,雖然 Kotlin 1.0 已經正式推出了,但我們小組裡面還沒有人有用過 Kotlin 開發產品的經驗,所以我們在正式開發前花了一點時間來研究 Kotlin,經過內部討論後,最後決定試著用 Kotlin 來開發 LINE Creators Studio。

為什麼用Kotlin

我們是根據以下幾個原因決定使用 Kotlin.

100% interoperable with Java

Kotlin 其中一個非常讚的特性是完全相容 Java,所以你可以在一個 project 裡面同時使用 Kotlin 和 Java 而不會有任何相容性的問題。雖然 LINE Creators Studio 是一個全新的專案,但是我們仍然需要使用一些很棒的函式庫,像 Dagger 2、Retrofit、RxJava 等等。

Concise syntax

Kotlin 最初是為了解決一些 Java 設計不便的地方而設計的,而其中一個主要的目的就是要能比 Java 寫出更簡潔的程式碼,而這一點在我們小組裡面,更是重要的一個因素。

Reduced dependencies

Kotlin 本身就帶了一個簡潔的標準函式庫,而且在大多數的應用上可以用來取代一些知名的大型 Java 函式庫,像是 Guava 等。在 Server 和 Desktop 應用領域上,使用這類大型的函式庫基本上沒有什麼問題。但是在 Android 的開發上就會造成一些麻煩。主要的原因就是 Android 的 Dalvik JVM 有上限 65K 的問題,基本上需要避免使用大型的 Java 函式庫。而最新的 Kotlin 標準函式庫 1.1.3-2 版只有6306個(參考連結) 函式, 所以可以有效地減輕這個問題。

Compatible with old Android devices

Kotlin 1.0 是基於 Java 6,所以使用 Kotlin 開發基本上可以在任何的 Android 2.3 版以上的裝置運行,這對於一個 Android 應用程式開發者來說是非常重要的,畢竟使用最新版本 Android 的用戶還是比較少一點。

Geo-linked applications with beacon

我是負責規劃台灣LINE Beacon平台的Charlotte Yu。

在我負責的計畫裡,LINE Beacon作為實際定位精確地理位置的技術,對於LINE「拉近你我的距離」(Closing the Distance)願景,以及對 LINE 成為一個智慧平台入口的理念,扮演了相當重要的角色。

在前期階段,我們主要致力於在選定的重點場域部署LINE Beacon與應用案例來提升使用者對此新型態LBS(Location-based Service)應用的關注進而吸引更多使用者使用。

我們的策略是利用LINE Beacon結合目前LINE平台各項受歡迎的產品或功能來與台灣廣大的LINE用戶連結。我們不僅希望未來能引領行動定位服務(LBS, Location Based Service)新型態的創新應用,也希望能盡可能地擴大LINE Beacon的部署以建構LINE Beacon的聯播網。LINE在台灣的高滲透率以及Beacon精準定位的優勢,也符合實體通路虛實整合(O2O, Online to Offline) 行動商務佈局最重要的兩個因素。

虛實整合的訊息服務能把用戶從線上平台引導到線下商店。O2O 消費行為模式已成智慧商務的新興議題,透過LINE Beacon推播訊息至消費者的行動裝置(也就是一般用戶花最多時間瀏覽的線上商店或平台),藉此引導消費者到店內消費。依照顧客位置提供附近店家和相關的折價優惠券、會員卡,或作為鄰近行銷(Proximity Marketing)的參考。所以我們希望透過各項LINE Beacon的應用將人群從公共場域延伸至私人商家場域,這些應用提供了消費者在商場內的導航或優惠資訊推播,傳送實用的訊息至用戶的手機中,連結實體店面和網路虛擬世界來擴大傳統實體商圈客群的觸及,抓住消費者的心。

LINE Beacon連結起的虛實整合訊息服務,將開始應用在我們每天使用的產品或服務,例如:優惠券、點數或會員卡來提升顧客消費的比例。我們可以推播GeoADs(地理定位的廣告)來行銷擁有LINE企業帳號(如:LINE 官方帳號或LINE @帳號)的商家、客戶或實體活動給鄰近的LINE用戶。藉由結合LBS(Location-based Service)的誘因,如:優惠券或貼圖,來吸引LINE用戶走進店裡,透過有趣與互動式的商場導覽應用能夠提供較好的使用者體驗以及延長消費者在實體店面的時間。

LINE安全介紹

大家好,我是David,是LINE台灣的資安工程師,今天要跟各位分享的主題是「LINE安全介紹」,說明LINE如何確保用戶的安全。

當各位在使用LINE的時候或許會發現LINE的軟體更新相當頻繁,在這些變更中,許多更新是為了強化登入與訊息的安全,或許您會覺得這些更新帶來一些不便,但是這些新的功能可以更有效的保護您的帳號與個人資訊的安全。

LINE軟體安全功能介紹

為了讓訊息傳遞與帳號資訊更加的安全,LINE在軟體中提供了許多安全功能,像是訊息加密、安全登入、帳號管理與資料安全移除等功能,接下來的介紹會讓您更了解這些安全功能的作用。

訊息加密

在安全領域裡面,從古至今,加密對於保護訊息傳遞是一個最有效而直接的方法,為了保護用戶私密的資訊,LINE使用了多種演算法與加密系統來傳遞訊息。

LEGY (LINE event delivery gateway)

LEGY伺服器處理所有經過LINE的訊息,負責將不同類型訊息傳送至後端的伺服器,當用戶的設備中的LINE App連線到LINE的服務時,重要的資料傳輸都會透過LEGY伺服器來處理,因此,為了確保傳輸的效率與安全,LEGY協定根據通訊軟體的特性修改了部分SPDY的功能來降低網路傳輸的延遲,透過LEGY協定,LINE可以將訊息都放置於加密的TCP通道中傳輸而不會因為加密而犧牲太多的通訊品質。

為了在LEGY協定中實現上述的安全功能,我們將加密簽章預先放進了軟體中,除了加速了原先需要做簽章溝通與下載的流程也避免掉駭客利用偽造簽章來破解加密通道,即便如此,伺服器仍然會檢查連線的用戶端的加密簽章,確保連線的另一方使用的簽章是被LINE所信任的。

LINE聊天機器人活動分享

我是LINE的工程師Ange。這篇文章將分享LINE內部規劃與建置LINE聊天機器人的經驗。

我們分別在2016年12月16日與2017年1月26日推出了「LINE FRIENDS CAFE & STORE新光三越A11開幕活動」以及「LINE祝福好聲音」這兩個LINE聊天機器人,在「LINE FRIENDS」與「LINE台灣」官方帳號(Official Account;簡稱OA)中舉辦活動。這些活動透過在LINE Banner、LINE官方帳號、〈其他〉頁面、LINE Points任務牆等廣告版位同步做推廣,並且達到百萬人次分享與宣傳的效果。以下將介紹這兩個LINE聊天機器人的基本功能、系統設計與建置、資安考量以及帶來的效益。

活動內容概要

LINE FRIENDS CAFE & STORE新光三越A11開幕活動

LINE FRIENDS CAFE & STORE新光三越A11 聊天機器人是LINE在2016年12月16日推出的機器人,目的在宣傳同年12月23日於新光三越A11館開幕的全台第一家複合式LINE FRIENDS CAFE & STORE,進而吸引更多用戶加入官方帳號,以及到實體店面參觀與消費。此活動整合線上(online)與線下(offline),用戶透過與官方帳號裡的圖文訊息選單與LINE聊天機器人互動,藉以了解即將開幕的LINE FRIENDS CAFE & STORE的地點與相關訊息,同時也有機會獲得LINE FRIENDS CAFE折價卷抽獎的機會。LINE用戶可以透過LINE或Facebook分享活動網頁,每五位朋友點擊用戶分享的網頁,就可以獲得一次抽獎機會, LINE聊天機器人將會把抽獎訊息自動推送給用戶。

新光三越A11館LINE FRIENDS CAFE & STORE