Quantcast
Channel: Blog E
Viewing all 537 articles
Browse latest View live

[LINE DevRel] 2020 年 LINE 開發社群計畫活動時程表 (持續更新)

$
0
0

大家好,我是來自 LINE 台灣開發者關係與技術推廣部門 (Developer Relations) 的資深開發技術推廣工程師 Evan Lin。 LINE 從 2019 年初在台灣啟動「LINE開發社群計畫」,長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等。 經過了一年多的努力,舉辦了超過三十場的社群聚會,並且有相關的活動。更多細節歡迎參考: LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告

關於什麼是開發者關係與技術推廣部 (Developer Relations)與開發社群計畫的三個主軸,也歡迎查看一下 2019 年LINE 開發社群計畫活動時程表

希望在這裡跟大家分享一下,今年度的開發社群計畫的主軸與一些令人期待的活動。

#更多人參與的可能性:線上互動直播與錄影

收到許多參與者的回饋表示,因為時間與場地距離的限制,許多次的活動都無法及時趕到現場而無法參加, 並且活動後也不容易找到相關的錄影資源。 也由於新冠病毒(COVID-19)疫情的爆發,許多社群的線下活動都受到影響。今年團隊將嘗試開放 LINE 官方帳號 「LINE開發者官方社群」線上直撥的部分,並且也會在之後的官方頻道中(後續補充)補充相關的錄影資源。

校園菁英們看過來: LINE TECH FRESH - 技術新星人才計劃

今年開發社群計畫將計畫往校園開發,除了計畫與相關學校舉辦的學術競賽外,也會舉辦一些跟學校招募與宣傳相關活動。 希望讓許多學校的菁英們更了解 LINE 平台之外,對於打造能夠乘載這些服務的跨國合作方式能夠更了解。也歡迎更多的學生們能加入我們的行列。 更在此年也擴大展開了 LINE TECH Fresh 計畫。

LINE 台灣工程團隊每年透過 LINE TECH FRESH - 技術新星人才計劃,招募資訊科技相關科系,或對此領域有所涉略的大學生 / 研究生加入 LINE 團隊進行長期實習 (一年期),讓同學們有機會在國際級科技公司中觀摩學習。LINE TECH FRESH 由兩位經驗豐富的技術專案經理帶領小組團隊,接觸多元化的專案與產品開發,學習業界實際的軟體專案分工,並體驗跨國團隊合作。往年工作內容包含 server、web、mobile app、chatbot、IoT、data、DevOps 等領域,並透過實習熟悉 LINE 平台系統、SDK、API 等.對於軟體開發有熱情、有想法的同學們,千萬別錯過這個任你揮灑創意與衝勁的機會!

更多的內部開發者活動

今年將針對 LINE 內部開發者有設計相關的程式競賽,讓大家在趕專案的同時依舊能發揮創意。一起打造出讓使用者 WOW 的產品。 更多相關計畫正在緊鑼密鼓籌辦中。

如何取得第一手 LINE 開發者關係與技術推廣部資訊

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev (點擊這裡 加入好友)

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:


[研討會心得] 2020/03/17 Chatbots 17 at Dcard

$
0
0

前言

大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatbot meetup 聊天機器人小小聚 17 @ Dcard” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。

由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。

這次場地感謝 Dcard贊助在 Dcard的 14 樓辦公室,有一個專門提供給技術社群分享的空間。相當的不錯,也希望有更多的社群來這裡分享。

由於防疫的要求,這也是我第一次參與到全程配戴口找的線下實體活動。感謝主辦單位準備完善的酒精消毒與口罩配戴叮嚀,讓參與的人與工作人員都能夠受到良好的保護。

LINE Platform Update 202001 / 資深開發技術推廣工程師 Evan Lin

傾聽開發者反饋,以 LIFF Server API 為例:

LINE 對於開發者的反饋是相當重視的,歡迎每一位開發者與我們共同成長,互信與互惠的經營著這個平台。在 2020/01/21 的時候曾經在網站上宣布著 LIFF Server API即將在三月底停止功能之後,收到了許多開發者的回覆,對於與客戶之間的合作方式將會因為 LIFF Server API 的停用而造成莫大的困擾。

DevRel 團隊蒐集到相關的案例與討論後與總部的開發團隊討論之後,也很開心的獲得了計畫團隊的了解。將時程停止了,更多訊息可以參考 LIFF v1 API 及停用日期變更。

更好用,讀取更快速的 LINE Developer 網站

2020/01/27 我們曾經宣布開發者網站 (LINE Developer) 有了大幅度的改版,變得更快!更好用!最近有一篇更詳細的文章敘述,他們如何從 Middleman 轉換到 VuePress 的過程,歡迎觀看。

相關文章:

更有效地分眾訊息 - Narrowcast 與 Custom

“我們不是不喜歡廣告……我們只是不喜歡與我們無關的廣告。” 同事 Tan 在文章「透過 Narrowcast API 在 LINE Chatbot 上發送”精準”且”討喜”的訊息」裡面有介紹到這個事實。 使用者們並不討厭廣告,但是討厭被跟自己無關,自己不在意的廣告騷擾。經常出現無關的廣告訊息會增加使用者的好友封鎖率。

因此, LINE 在一月底推出了分眾管理的相關 API ,透過主要提供的三種分眾方式:

  • 人口資料挑選方法:
  • 透果使用者的統計資訊來分眾,年齡,性別,甚至是地區,都是可以讓開發者可以根據來分群的方式。
  • 點擊再行銷:
  • 根據發送過的訊息內網頁鏈結的點擊用戶,針對該用戶再來做相關的行銷。
  • 曝光再行銷:
    • 根據發送過的訊息有收到並且已讀的用戶,針對該用戶再來做相關的行銷。

針對以上所以的三種方式還可以做相關的運算比對( OR, AND ) 的方式,更可以讓商家可以找出想要針對的客戶:

  • 九十天前加入的好友,並且為男性的年輕人
  • 點擊過鞋子類商品鏈結的女性好友

這些都是相當好用的範例,更多的範例可以看由廣告與商業部門同仁提供的「LINE 生活圈」官方粉絲團的相關介紹影片

相關資訊:

新的 LIFF App 將不在支援 LINE Things 中的 BLE (藍芽)通訊功能

LINE Things Developer Trial 已停止提供 LIFF app BLE 新功能,且未來將不會恢復提供; 目前僅提供自動通訊功能 (automatic communication)。

2020 年 2 月 10 日之後建立的新 app 將無法於 LINE Things Developer Trial 中使用 LIFF app BLE 新功能。

相關鏈結:

LIFF: Share Target Picker

自 LIFF v1 時代以來透過 liff.sendMessages()將消息發送回聊天室(以用戶的名義)或的功能,僅打開該LIFF的聊天室。

不少開發者建議 LINE 增加 LIFF 與朋友或群組分享消息的能力。這就是 liff.shareTargetPicker()

開發前需要了解的五件事

  • 從 10.3.0 版開始,LINE App 將支持 “Share Target Picker” (註解: 如果在外部瀏覽器,則不需要等待 LINE App 更新)
  • “Share Target Picker” 僅在 LIFF v2 中可用。
  • 來自 “Share Target Picker” 的消息將代表用戶發送(就像我們向朋友發送消息一樣)
  • 純文字圖像視頻音頻位置Template Message(僅URI操作)Flex消息是可以通過 “Share Target Picker” 發送的消息。
  • 可以在外部瀏覽器中使用 “Share Target Picker” ,但必須先使用LINE Login進行身份驗證

關於 Share Target Picker 的版本支援部分:

  • LINE 裡面打開網頁 -> IAB (In-App-Browser) ,依賴於 LINE App 版本。 iOS 需要 10.3.0 (目前還沒上架)
  • 外部瀏覽器打開網頁 -> External Browser 不依賴 LINE App 版本。

所以建議大家可以把 LIFF v2 開發在各位的電商網站之中….

相關展示:

或是觀看以下的展示影片:

相關資訊:

LINE Bot 案例分享 - 口罩查詢 / David 董大偉

投影片

最近由於新冠病毒的盛行,全國都一起在忙碌著防疫。董老師也不落人後,透過製作一個口罩查詢機器人來教導大家關於快速部署一些心法。

相關的開發過程:

  • 資料轉換:衛福部的資訊是 csv ,需要轉換成資料為 JSON 。
  • 方便查詢:透過 LINQ 來對資料做相關的查詢。
  • 如何定期更新資料:由於資料剛上線的前幾天,資料查詢需求爆量。需要保存一次資料在 local storage,避免資料因為查詢不到而無法顯示。 並且透過外在服務去測試服務是否還在線上(方式就是 Refresh 相關資料)。

除了開發之外,其實部署跟維運的流程也相當重要:

  • 需要能夠負擔大量用戶:打造具有 HA (High Availability) 的架構,能夠自動水平擴展(Auto-Scale) 。
  • 部署的穩定度:自動更新版本(自動上版),藍綠部署(Canary Release: 也就是將新功能部署給某一些用戶,可以了解是否有問題發生,避免因為大量部署造成停用的問題)。
  • **服務的可量測性(Measurability) **: 透過外在服務 Azure AppInsights 來幫助量測服務的健康度。

如何 LINE Notify 來主動通知使用者(免費的方式):

LINE Notify 是 LINE 提供具有訂閱的免費服務,許多的開發者除了拿來做訂閱服務外,更可以拿來通知使用者。但是要如何讓使用者能夠「主動訂閱」 LINE Notify 呢?

其實是可以透過 Action Button 來訂閱,但是有一些需要注意的部分:

  • 訂閱服務畫面,拉到最下方需要同意使用者條款。並且確定訂閱。
  • 使用者經常不小心把 LINE Notify 的 OA 封鎖,造成無法訂閱其他資訊。

閃電秀

三個講者之後,接下來就是介紹這個社群最有魅力的部分就是閃電秀。所有的閃電秀可以參考這篇共筆文章 https://hackmd.io/@chatbot-tw/meetups-017,由於都是五分鐘的閃電秀,主要內容快速用條列介紹給各位:

  • 防疫駭客松,4小時創作「尋找口罩」LINE Bot!/ 陳佳新
    • 投影片
    • 簡介:
    • 講者介紹如何在四個小時內透過最快速的方式來打造出一隻「尋找口罩」的聊天機器人。
  • 跨群組尬聊一波!/ 卡米哥
    • 投影片
    • 簡介:
      • 透過一個 LINE Chatbot 結合 LINE Notify 的服務來打造跨聊天室的聊天機器人。不同群組裡的對話都會透過 LINE Notify 來相互轉傳。相當有趣的創意!!
  • 用 LINE 玩桌遊 - 殺手遊戲 / Dairan
    • 投影片
    • 簡介:
      • 透過 LIFF 與聊天機器人來打造一個線上殺手遊戲(一個類似狼人殺的遊戲),遊戲過程相當的有趣。
  • LINE 防翻群機器人 / Dairan
    • 投影片
    • 簡介:
      • 講者在開發殺手遊戲的同時所激發的靈感,一樣是透過 LIFF 與 Chatbot 來讓使用者可以在被翻群機器人翻出的時候,收到加回群的鏈結。

活動小結

社群分享永遠是讓創意激盪的最佳方式,而 Chatbots Meetup 是一個很熱情與充滿創造力的社群組織。也希望有更多有創意的開發者願意加入 LINE Chatbot 的開發行列,更希望能熱情的參與社群的活動與一起來分享。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[Golang][LINE][教學] 使用 Icon Switch 來變更聊天機器人的暱稱與圖示

$
0
0

(圖片來自: LINE Developer News )

前言

曾經在 TECHPULSE 2018 的演講上有出現過的 Icon Switch 功能,當時受到相當多開發者的詢問。但是由於當時 Icon Switch API 仍然算是 Partner API (指的是需要透過跟 LINE 申請合作的開發廠商,才能使用的功能),所以能使用的開發者並不多。

很開心的這樣的功能總算開放給所有的開發者來使用,本篇文章就是透過一個簡單的範例來讓開發者們了解該如何使用這樣的功能。

範例程式碼

https://github.com/kkdai/line-bot-icon-switch

如何部署範例程式碼:

  • LINE Developer Console建立相關的 Provider 跟 Channel

  • LINE Developer Console建立一個 LINE Messaging API Channel 並且打開 Message API 的功能,並且將以下兩個資訊記住:

    • Channel Secret
    • Channel Token
  • https://github.com/kkdai/line-bot-icon-switch按下 Heroku Deploy ,建立該帳號並且部署該服務。這時候會要輸入三個資訊:

    • CHANNEL_SECRET
    • CHANNEL_TOKEN
  • 記得把 https://test-api-1234.herokuapp.com/callback加到 LINE chatbot web hook 才能正確地啟動聊天機器人。

實際跑一個範例 (demo)

  • 先 Deploy 該範例專案,或是直接加入測試機器人 @656gvdsu (也可以掃描以下 QR Code)

  • 輸入任何字,聊天機器人會提示你要可以選擇回覆的人「Brown」,「Cony」或是 「Sally」。

  • 輸入「Brown」,「Cony」或是 「Sally」 就會看到機器人更換他的圖示與暱稱來回覆你。

程式碼解釋

(註: 相關程式碼展示透過 Go)

{
    "type": "text",
    "text": "Hello, I am Cony!!",
    "sender": {
        "name": "Cony",
        "iconUrl": "https://line.me/conyprof"
    }
}

這段由 Icon Switch 的文件上面擷取的範例,可以了解 Message Object 新增了一個 sendeer的物件,裡面包含了兩個資料:

  • name: 修改的暱稱,但是請注意“避免混淆使用者”,所以全名會是 "暱稱 from OA 名稱"這樣的全名顯示方式,可以確定發言的是官方帳號(不是某個真人),不容易讓使用者混淆。
  • iconUrl: 圖示的修改,圖片的來源必須是 HTTPS 。

找出 LINE Friends 的圖示

相關的圖示來源可以參考這個 LINE Sticker 文件,在這份文件可以找出公開且免費使用的貼圖(請注意,除了這些開放的,其他都需要驗證與購買才能在 LINE 視窗內看到)。

發送修改暱稱

這段範例程式碼該如何如何使用 Icon Switch 的功能,最重要的就是以下這段:

linebot.NewTextMessage("Hi, this is "+message.Text+", Nice to meet you.").WithSender(sendr)

也就是每次送訊息得時候,需要指定發送者的相關資訊 WithSender()即可。

如何使用 Icon Switch 來推廣你的官方帳號

接下來這邊開始介紹幾個可能很適合使用 Icon Switch 功能的應用場景。

客服業可以透過 Icon Swtich 讓使用者有更好體驗

比如說銀行的客服官方帳號,可以如果使用者在聊天過程中希望有「真人客服」可以幫忙協助的話,可以透過 Icon Switch 來切換圖示代表轉換到真人客服。

LINE 官方帳號活動或遊戲透過 Icon Switch

有一些人透過 LINE Bot 來玩一些網路遊戲的想法,透過 Icon Switch 可以讓使用者更容易了解跟誰在對談。或是這時候是的遊戲狀況。

比如說: 狼人殺類型遊戲,桌遊等等相關類型。

此外,透過 Icon Switch 也可以來做一些活動公告,讓使用這更有親切的感覺:

  • 透過嫦娥來發送中秋節優惠
  • 透過年獸來發送過年活動訊息

總結

Icon Switch 是一個免費,並且可以讓使用者相當有感的功能。希望開發者們能夠一起來發揮創意,來開發出有創意的 LINE Bot 吧。

『Create WoW for the world!」

參考

[TIL][Podcast] 換了 Podcast 的收聽軟體 Overcast

$
0
0

前言:

聽 Podcast 大概是我好幾年的興趣之一,除了可以幫助我在通勤的開車時間學習一些新的事物。最近有一些有趣的議題也會讓我在通勤開車時間笑個不停。

但是最近發現 iOS 內建的 Podcast 實在沒那麼好用,加上 MacOSX 的版本(說好不提 iTunes) 更是不好用。只好看看有沒有其他的 Podcast 軟體可以更換。

最近換了 Podcast 的軟體: Overcast

主要是因為這個 tweet的討論,讓我知道了 Overcast的功能(已知用火?)。裡面有兩個功能我蠻推薦的:

  • Smart speed:自動移除掉靜音的部分,讓整個播放速度會智慧的調整。
  • Voice Boost:聲音也會變大聲一點,試了幾天下來蠻清楚的。

比較一下跟 iOS 內建的 Podcast 比較:

  • Overcast也是可以在網路上聆聽,讓你在 MacOS 上面也是可以同步目前的聽的狀況。
  • iOS Podcast 的 short note 顯示有被人強力的批評,完全不依照原來的格式。
  • iOS 會自動全部下載最新的, Overcast預設下載最新的,需要更大空間需要付費會員。

推薦的 Podcast

其實來聽 Podcast 最大的問題應該是「如何尋求喜歡的頻道?」 ,這個其實蠻推薦可以試試看 Castbox。裡面有不少的推薦頻道。

國外推薦 Podcast

國內推薦 Podcast

  • 頂樓加蓋: 由 Affe 跟 Denny 兩人組成的 podcast ,有很多有趣的內容。也很好笑。
  • weak self: 三個 iOS 工程師的內容,也有一些動森跟其他工程師會聊的,蠻有趣的。
  • 冒牌者症候群の下班時間:由 Badu Huang 開台的內容,內容也蠻多元的。30 歲,結婚生子或是換領域都有。
  • 三宅一聲: 三位業界 KOL 經營的內容,可以聽聽。

Reference:

[TIL][Podcast] 關於 WFH 議題的 Podcast

$
0
0

(Photo by Djurdjica Boskovic on Unsplash)

前言

由於新冠病毒的影響,似乎每一間公司就開始(或是試跑) WFH (Work From Home) 也就是在家工作,來避免搭乘大眾交通工具而增加感染的風險。 最近聽了幾個 Podcast 也有提到作為軟體工作人員對於 WFH 的想法,我覺得可以整理一下分享出來。

幾個 Work From Home 的 Podcast:

最近聽了一些關於 WFH (Work From Home) 的 Podcast 討論,分享幾個給大家:

Go Time – Episode #123 WFH

https://changelog.com/gotime/123

參與人員:

內容:

這篇蠻有趣的是討論到很多很細的 WFH 細節:

  • 比如說水喝太多跑廁所。
  • 需要有個好好投資買個好椅子(廣告: LINE 辦公室都是 Human 實在太犯規)
  • 需要有個儀式轉換心情~換衣服可能不錯喔? 也有人建議可以訂鬧鐘,不然很容易上班過久。
  • 需要有個走動的習慣,基本上就是你在辦公室會做的,你應該也要在 WFH 也做,這對我還蠻重要的。我習慣走動一下思考許多活動的細節,往往在家就沒辦法走動實在不太好。有人建議可以養隻狗~他會強迫你去走動。

其他部分其實談到是工程師的 Deep Work 的重要性,也就是如何保留一段時間作為專注工作的方式。這邊就不另外提了。 有一本正在看的書,可以推薦:

Remote Team Management with Ryan Chartrand : Software Engineering Daily

https://softwareengineeringdaily.com/2020/03/26/remote-team-management-with-ryan-chartrand/

討論的內容比起 Work From Home 更直接,而是完全的 Remote Team 。 裡面談到 Remote team 是比較直接的,省去了許多辦公室的禮貌,但是卻能夠直接地給予公司所有的贊助。 員工每一天上班不需要煩惱通勤,中午吃什麼,而是今天要如何幫助專案或是公司前進。

weak self podcast 23: 在家工作!WFH 時怎麼樣才不會 WTF

https://weakself.dev/episodes/23

內容跟前面兩個都蠻像的,想聽中文版本的可以聽聽看這個。

關於 Work From Home 的感想

公司也在最近有試跑 WFH ,目的是希望所有同仁能夠習慣透過 remote work 的方式來完成原先日常有的工作。所以在時間安排上也比較隨機,也希望同仁不要因為 WFH 而特地把會議移開。

對我自己來說, Work From Home 或是在辦公室工作主要就是能夠專心的程度,當然公司超好的椅子也是一個誘因啊! 因為我周圍其實也滿安靜的,所以對我來說不論是在家裡或是在辦公室沒有太多差異,但是我個人是希望在辦公室工作,因為設備比較齊全。

加上最近有一些線上活動需要錄影準備,常常也是要當場跟製作公司討論錄影的相關內容。所以很多時候反而希望能在辦公室辦公。(加上不知道為何家裡樓上的鄰居最近又開始裝潢 orz )

不過真的如同幾個 Podcast 有提到的,很重要的在於如何確認你下班了,避免你的生活因為 WFH 而嚴重的被影響。

除了這些之外,原本如何提升專注力或是如何讓自己專心工作,,這似乎又是另外一個議題了。

[podcast] Software Engineering Daily - FB Messenger Rewrite

$
0
0

https://softwareengineeringdaily.com/2020/03/31/facebook-messenger-engineering-with-mohsen-agsen/

最近聽過蠻有趣的 Podcast 講解 Facebook Messenger iOS 版本重寫的過程。 作為技術研究與討論,幾件事情值得整理:

  1. Single source of truth 竟然是 client 的 SQLite 資料庫。
  2. 重寫 Messenger client 團隊高達 120 多人(據說大多是 iOS)
  3. 沒有 React Native 全部都是 Obj-C ,共用部分用 C 整篇內容算是有足夠的深度,並且分享不少過程中的經驗談。

[LINE][教學] 使用 liff.isApiAvailable() 來讓舊的版本 LINE App 可以跑新的 LIFF 功能

$
0
0

(LIFF ShareTargetPickder功能展示)

前言

LIFF ShareTargetPickder是一個相當強大的功能,不僅僅可以在 LINE 裡面讓使用者更方便地分享資訊給好朋友,更可以讓使用者透過外部瀏覽器來分享資訊給好朋友或是聊天群組。

但是這樣的功能在 LINE 上面的支援程度必須要再 10.3.0 之後的版本才能支援,如果使用者的手機 LINE App 版本不是更新到最新版本的話。那麼有可能無法正常執行這個功能。

今天這篇文章就要介紹一個新的 API 功能 liff.isApiAvailable()功能,如何透過這個 API 讓各位新的 LIFF ShareTargetPickder可以在使用舊版本 LINE 的使用者上運行,並且提供給各位一段範例程式碼與展示的影片。

範例程式碼

https://github.com/kkdai/liff-template-go

實際跑一個範例 (demo)

開啟這個 LIFF App

如果你是在 iOS 手機並且透過舊版本的LINE App (<10.2.0) 中打開,你會出現一個警告訊息,並且幫你打開外在瀏覽器來開啟這個 LIFF 網址。

可以看以下影片的展示:

程式碼解釋

(完整程式碼可以查看: https://github.com/kkdai/liff-template-go/blob/master/liff.html)

這邊做一些簡單的解釋:

  • if (liff.isApiAvailable('shareTargetPicker'))透過這個方式來檢查目前是否支援這個 API

    • 如果在 LINE App 呼叫,會根據不同 LINE App 回覆不同回答:
      • 版本小於 10.3.0 回傳 False.
      • 版本大於或是等於 10.3.0 會回傳 True.
    • 如果是在外部瀏覽器呼叫,將會永遠回傳 True.
  • 如果版本不支援,直接往 13跑,首先先跑出警告視窗顯示: “你的 LINE App 暫時不支援 Share Target Picker ,將開始外部瀏覽器。”

  • 然後透過 liff.openWindow來開啟外部瀏覽器(透過 external: true),讓使用者透過別的方式來使用這個功能。

總結

透過 liff.isApiAvailable() 可以讓需要使用 LIFF ShareTargetPickder的開發者,讓有一些使用者也能夠正常的體驗 LIFF ShareTargetPickder的威力。

但是隨著 LIFF 的功能逐漸增加,或許以後也會有更多令人驚喜的功能,讓我們一起期待吧?

參考

[研討會心得] 2020/04/10 LINE Developer Meetup 11

$
0
0

前提

大家好,我是 LINE Taiwan DevRel 團隊的 Evan Lin。很開心在這裡跟各位分享本年度的第一場開發者小聚。 由於新冠肺炎疫情影響,此次的活動改為線上活動並且透過 LINE OA Live 的方式播放給所有的參與者了解,也在後續會官方粉絲專頁與官方的開發者 Youtube 頻道開放完整的影片給想要參與的開發者共襄盛舉。

KKTIX 活動網頁: 活動網址

本次 LINE Developer Meetup 開發者小聚,有三位 LINE 工程師來分享,首先由 Julian Shen 來跟各位介紹去年推出的新服務 LINE SPOT ,緊接著由 Johnson Wu 來分享 LINE 的資料工程團隊的一些工作內容。 經常聽到學生們來詢問, LINE 是否有給理工科的實習機會,所以這次最後來自 “LINE TECH FRESH 技術新星人才計劃” 參與的 Wei 將會為各位介紹如何加入 LINE TECH FRESH。

Opening / LINE 資深開發者關係與技術推廣工程師 Evan Lin

首先今年因應疫情的影響,為了響應防疫的相關措施,許多的線下活動無法舉行。 今年開發者關係與技術推廣部特地準備了許多線上的活動與線上的影片來與開發者們交流分享。在此也跟各位分享, LINE 台灣開發者的官方粉絲專頁與 LINE 台灣開發者 Youtube 頻道都開幕了。 往後開發者們可以在上面去瀏覽所有開過的線上活動與相關的交流影片喔。

LINE Developers 官方資源整理:

LINE Spot and how we built it / LINE SPOT Julian Shen

投影片

影片 (請參考 LINE Engineering Blog 文章)

首先上場的是 LINE SPOT 團隊的 Julian Shen ,曾經 Julian 在 TECHPULSE 2019 的會場有介紹過關於 LINE SPOT 服務介紹。更多的 LINE SPOT 服務介紹與 LINE SPOT 架構介紹可以參考這篇文章 「LINE TAIWAN TECHPULSE 2019 科技盛會精彩回顧」

這次帶來的除了 LINE SPOT 的服務介紹外,更有分享了 LINE SPOT 如何因應疫情的變化,快速地打造出 LINE SPOT 口罩地圖的服務。

大家都了解,口罩地圖這個服務內容來自於衛福部所提供的 API 來查詢與視覺化得顯示。對於開發人員來說可能有以下考量的點。

  • 這是一個希望快速上線的功能?
  • 預期會有大量的流量會湧入?
  • Open Data 的資料來源是不是有可能會變更? 如何能快速調適?
  • 如何把口罩剩餘量做有效的處理?

歡迎各位可以好好地觀賞相關的影片,來了解更詳細的內容。

想要跟這樣有效率的團隊一起打造有趣的 LINE SPOT 服務嗎? 一起來加入吧。

更多相關內容:

初級資料科學家的快樂往往就是這麼樸實無華但不枯燥 / LINE Data Dev - Johnson Wu

投影片

影片 (請參考 LINE Engineering Blog 文章)

第二位講者來自 LINE 台灣 Data 工程團隊的 Johnson Wu 分享了他從去年加入 LINE 之後的分享。 根據講者敘述的就像許多的資工背景的人依樣,他是學校讀完碩士班之後畢業參與了一些計畫後就參加了 LINE ,但是這一年之中有許多有趣的事情可以跟各位分享:

巨型資料的處理學習

講者整理了一下他稍微處理過的相關資料,超過 20M 的使用者(去識別化)的資訊,來自 LINE TODAY 一年超過 1M 的新聞文章,來自 OA 上面發送過來要求檢驗的 1b 的訊息。 這些令人無法想像的數據量就是 LINE 能夠持續改善使用者體驗,讓每個使用者可以有效的找到需要資訊的來源。

講者也分享了~根據這些資訊也學到許多相關的技能,不論是針對大型資料的存取,對於 ML Model 的調教,對於計算時間的優化並且也對於自己如何跟人溝通的能力也加強。 因為在 LINE 裡面我們許多的時間都是跟不同地區,不同事業體系的人來溝通與分享。 也需要鍛鍊自己與外部開發者的技術溝通能力。

許多與人相關的專案

這一年 Johnson 參與了以下的專案:

  • LINE 訊息查證(LINE Fact cheker) : 跟著團隊打造有效的收取使用者回報的假訊息,並且可以有效地訓練出來假訊息的判別模型。
  • LINE Music : 使用者搜尋分析時的自動補完機制,可以幫使用者更精準地找到他想要的歌手,歌曲或是團體。
  • 一些相關的研究: 一些論文學習與技術相關的研究部分。
  • 技術分享: 講者也是 LINE TECHPULSE 2019的講者,分享了許多有趣的研究心得。

這麼多有趣的分享,還不趕快來加入 LINE 台灣資料工程團隊。

更多相關內容:

Tech Fresh 從入門到精通 / LINE Music - Wei Wan

投影片

影片 (請參考 LINE Engineering Blog 文章)

最後登場的 LINE Music 工程師 Wei ,之前可是 LINE TECH FRESH 計畫中的實習學生。這次的分享中, Wei 分享了他之前身為 LINE TECH FRESH 實習計畫的經驗談,這裡稍微整理一下幾個重點:

什麼是 LINE TECH FRESH ?

LINE 台灣工程團隊每年透過 LINE TECH FRESH – 技術新星人才計劃,招募資訊科技相關科系,或對此領域有所涉略的大學生 / 研究生加入 LINE 團隊進行長期實習 (一年期),讓同學們能在國際級科技公司中觀摩學習。

更多內容,可以參考這篇文章: LINE TECH FRESH – 技術新星人才計劃,實習經驗大公開

如何得知 LINE TECH FRESH 計畫的?

一次因緣際會下 LINE 來臺北科技大學舉辦分享,得知了 TECH FRESH 的機會就想來學習一些經驗。

可以請教一下 LINE 面試流程如何進行?:

分為兩個階段,首先會先請申請者繳出自己撰寫的 LINE Bot 。透過整個 LINE Bot 設計的理念與相關程式碼的處理方式。主考官會根據這些方式來了解申請者的能力與做事的縝密程度。

通過了第一個階段後,可能會邀請面試並且填寫一個程式能力測驗的考卷(或是白板試題)。 與主管面試過程中,主管也會有耐心的引導相關的回答。在面試得時候不會有任何的壓力。

正式成為 LINE TECH FRESH 之後的實際工作狀況如何? :

報到的第一天,就會看到辦公室有著舒適的椅子(聽說是好幾萬)。並且有就算是 LINE TECH FRESH 實習生(有薪水的),也是有完整的電腦配備與相關的文具配備。 報到之後一開始主管也會有相關的新人訓練,並且也會帶著跟著一些專案來讓 TECH FRESH 同事們能夠熟悉開發流程。

在 LINE 裡面的開發工作有著相當程度的自由性,並且重視同仁間的溝通。許多時候可以學習到如何跟專案規劃團隊與專案業務部門討論。並且經常有跨部門的討論,甚至是跨國性值得討論(與韓國,日本或是泰國團隊)。 這些經驗在實習的時候都是相當令人難忘的。

LINE TECH FRESH 福利如何

LINE TECH FRESH 實習生大部分的時候就像是正職的工程師一樣,享受著跟所有同仁一樣的福利。有著免費的早餐可以拿取,部門也有定期的聚會與學習討論的機會。並且也有大量的學習資源可以學習,公司內有許多有經驗的前輩願意,也有耐心的分享與指導。

在 LINE TECH FRESH 實習過程中有參與哪些專案?

  • 夏日大合作: 跟著 LINE FRESH 暑期工讀計畫的合作,跟著其他學校的 LINE FRESH 短期工讀生來完成一個專案。
  • Chatbot 開發: 寶寶說,冰箱君跟小煮人。
  • 參與了 LINE 捷運的 Beacon 專案開發。

最後講者也提到,由於相當習慣這裡的 Engineering Culture 。也喜歡整體的工作環境與氣氛。所以 LINE TECH FRESH 完成後,就經過正式流程來申請正職的流程 (需要重新筆試與面試),作為正職的 LINE Music工程師。

更多相關內容:

活動小結

社群分享永遠是讓創意激盪的最佳方式,而 Chatbots Meetup 是一個很熱情與充滿創造力的社群組織。也希望有更多有創意的開發者願意加入 LINE Chatbot 的開發行列,更希望能熱情的參與社群的活動與一起來分享。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:


[好書分享] Uber與Airbnb憑什麼翻轉世界

$
0
0
The Upstarts : How Uber, Airbnb, and the Killer Companies of the New Silicon Valley Are Changing the World
原文作者: Brad Stone  
譯者: 李芳齡  出版社:天下文化 
出版日期:2017/06/29 

買書推薦網址:http://moo.im/a/gmnpuA

前言:

記得上一次我也看過一本跟 Uber 有關的書籍,叫做「橫衝直撞: Uber刷新市值、3年成長20倍,卻成為全球麻煩製造機背後的教訓(Wild Ride)」。裡面對於創辦人 - 卡蘭尼克有了許多的著墨,但是對於 Uber 在城市間如何快速發展的主因,還有如何在法律與計程車司機抗議浪潮中生存的方式有太多的敘述。

於是我選了這一本來看,除了想要了解 Uber 更多的細節外。希望也能了解 Airbnb 得成名過程。

內容簡介:

Uber與Airbnb,為何帶來創新,又製造不安?

兩個工餘計畫,是怎麼變成價值千億美元的戰略?

名下沒有一輛車、一間房,如何穩居市場第一?

 

全球首部Uber、Airbnb授權專訪傳記,給你最深入的第一手訪談與觀察。

法規跟不上時代,但你不能跟不上時代,

讀完這本書,你將以全新眼光檢視你的公司與工作

簡介來自讀墨:http://moo.im/a/gmnpuA

(上面來自於天下文化對於這一本書的介紹影片)

由於兩間公司雖然先後成立,但是當初成立的過程與面對的挑戰都相當的類似,所以作者很有趣的利用的三個階段來敘述了這兩間公司。

第一部 工餘計畫

Uber 創始人之一 - 卡蘭尼克是創業家,有過一次成功的創業經驗。但是在 Uber 成立之初他其實還有不少個新創的投資機會在手上。

Airbnb 只是三個創始人因為想要參加研討會而找房子,發現了這樣的商機而成立了這樣的公司。

一開始兩間公司創始人都是因為閒暇之餘的工餘計畫 (side project) 而起頭的。

第二部 建立王國

第二階段就是兩家公司重要的時候,就是因為時勢的原因。造就兩家公司的快速發展,並且透過這樣的契機而建立自己相關王國的過程。

Airbnb 遇到了總統大選,於是有了更多的短期租屋的需求。Airbnb 也在這個時候逐漸茁壯,力霸一方。但是也在這時候忽然被人發現, Airbnb 總市值已經超過了喜來登,凱悅等等知名的旅館企業,但是 Airbnb 並沒有自己的旅館,並沒有自己相關安全措施,於是受到很大的挑戰。

叫車軟體 Uber 在美國各地的發展也相當迅速,原因之一也是美國對於計程車牌照的發放太過嚴格並且需要許多的申請費用。 迅速的發展也讓 Uber 受到計程車業的抗議,美國各地都受到強大的反彈。

第三部 新創家的考驗

第三部份提到更有趣的部分,兩家新創公司用了哪一些方式來讓自己具有領先地位與競爭優勢呢?

Uber 運用了天眼系統,也就是會持續追蹤每一個司機的走向。透過這些方式來更有效的安排車輛,但是也受到了個人隱私的質疑與抗議。 而 Uber 公司比較積極而狂妄的競爭手法也有人說對於辦公室文化其實一些性別歧視的爭議。

而 Airbnb 也在創業過程中經常使用共享經濟,甚至是每一個房屋的分租人都是樂於分享的美好想法來包裝。但是對於真正發生租屋問題的時候,卻經常沒有幫那些分租人出來解決問題。

這些處理方式都相當有趣,很推薦好好看看。

心得:

這一本對於兩個打破人類思考的新創企業 - 「共享經濟」,也是對於法律的新挑戰。 Airbnb 代表的是共享房屋,但是卻帶來短期租屋與旅館業者的抗議。 Uber 代表的是共享車輛,但是也遇到各國計程車業者的抗議與質疑。

兩家公司受到各種法律的質疑,但是兩間公司因為創始人的個姓大不相同,回應方式也不同。

Airbnb 執行長 - 切斯基 生性浪漫,透過共享經濟的烏托邦夢想打造了一個社群。Uber 創始人之 - 卡蘭尼克 生性好鬥又聰明,透過了 Uber 的司機幫他們來在政治上面施壓。

兩家公司處理方式很不相同,但是都相當值得學習跟了解。

書的內容不少,敘事也都很細膩可以了解許多事情的來龍去脈,很值得推薦。

[心得] Go Developer Survey 2019 (1: Pain points)

$
0
0

前提

Golang 協會日前公布了去年的開發者調查結果。

Go Developer Survey 2019 Results

tl;pr (Too Long, Please Read) 我知道這個調查很長,你一定不會讀。我來幫你每天挑一個重點給你喔。

“Pain points”

這邊調查,為什麼你不使用 Go 在你的專案裡面的原因。 這邊列出前三名,別且列一下 2016 調查報告跟 2019 的數字比對。 本來會以為是第一名的 Generic 結果並不是喔!!

  • 第一名: 目前專案是其他程式語言( 58% -> 56%) 蠻合理的~ 換一個語言改寫整個上線的產品或是專案。不是你走~就是老闆叫你走。 XD

  • 第二名: 我的團隊(老闆)(專案)喜歡其他程式語言 ( 45% -> 37%) 這個蠻有趣的,其實社群內經常聽到「老闆叫我不要用 Go 」「老闆喜歡其他語言」 這些都需要持續的導入。 wwww 不過數字變低是好事。

  • 第三名: Go 缺少一些我需要的語言特性 ( 16% -> 25%) 終於到了大家比較有爭議的點,也就是是否 Go Generic 讓大家在開發上覺得困擾。 不過比例有增高,可能是開發了一段時間後真的有相關的需求。

歡迎各位來討論喔….

[研討會心得] 2020/04/21 Chatbots 18 @online

$
0
0

前言

大家好,我是 LINE Taiwan 的 Tech Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatbot meetup 聊天機器人小小聚 18 @Online” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。

由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。

由於防疫的要求,這次是在線上參與這次的聚會活動。很感謝每一位參與的朋友帶來的問題,希望透過線上以及錄影的方式可以讓更多的朋友可以了解。

LINE Platform Update 202004 / 資深開發技術推廣工程師 Evan Lin

投影片

在此幫大家更新一下,從三月到四月中的相關 LINE 平台技術更新。也希望透過這樣得更新與相關的範例整理能讓更多的開發者知道該如何應用這些新的 API 。

03/19 Domain name change of certain endpoint

即將在 2020/04/30 即將停用的 API Endpoint api.line.me,並且之後會換到 ` api-data.line.me` 。主要影響到的功能如下:

相關的 SDK 其實在 2019 的 11 月已經更新完畢,請各位開發者務必要更新你們的 SDK 到最新的版本。

相關訊息:

03/25 line:// is deprecated

LINE URL Scheme是一個可以透過 URL 點擊去呼叫某些功能,比如說:

還有相當多功能歡迎參考。

由於安全考量, line://的 URL scheme 已經全部修改為 https://。請相關開發人員都要在原始碼修改好。

目前(2020 April) 尚未將 line://全面關閉,但是之後會有一天關閉相關的使用方式。

相關訊息:

04/03 New LIFF API: liff.isApiAvailable()

這邊可以參考另外一篇文章的說明: 使用 liff.isApiAvailable() 來讓舊的版本 LINE App 可以跑新的 LIFF 功能

04/06 Channel access token 2.1

原先在 Channel Access Token 的功能上,如果要透過 Issue Channel Token (2.0)是需要 channel secret 的。

也就是說 Channel 的管理員,在這個時候需要將 channel secret 交給開發者去申請一個 Channel Access Token 。 在以往的實作上往往有隱藏著 Channel Serect 外露的危險。

這一次透過 Issue Channel Token (2.1)功能更新,只需要將 Assertion Signing Key 的公開金鑰給開發者即可。對於 Channel 帳號權限的控管也變得更加的安全。

相關資訊:

在 04/14 的時候,一口氣有四項主要的 Messaging API 平台的更新要給各位。

1. LINE emoji 在文字訊息中變得更容易發送

現在開始要在文字訊息裡面發送 LINE emoji 不需要自行做 unicode 轉換。可以直接在 API 中加上相關的 LINE emoji 編號就可以達成了,開發上變得更方便,也更有彈性。

2. 取得使用者的語言設定

許多開發者在開發多國語系聊天機器人的時候,最常詢問的問題就是,有沒有辦法取得使用者的使用語言呢?

現在透過 Get Profile (Messaging API)你就可以取得使用者的語言設定。

3. Multicast 相關 rate limite 變得更大

單次 Multicast API 呼叫可以發送的受眾從 150 增大到 500 。

每分鐘可以發送的受眾上限也取消了。

相關資訊:

04/21Notice about the return value ofliff.shareTargetPicker()

LIFF 之前公布的新功能 ShareTargetPicker 是一個相當強大的需求,可以讓使用者分享給其他好友(聊天室)。

可以透過 Flex Message 與其他特製的訊息來讓 LIFF 開發商有更大的曝光度。

之前收到大家許多回饋,希望能知道是否有成功的分享給好友。

今天的新聞公布的相關的訊息,即將上架的新功能可以讓開發者知道使用者有沒有成功的分享了。

相關資訊:

離開還是留下?免費比較好? / 澄信農智股份有限公司技術長 - 周駿憲

影片

投影片

LINE 2.0 發送訊息收費後,該如離開還是留下來? 如果選擇留下來,該如何讓每一分錢都花在刀口上。 講者從行銷的角度帶給開發者許多不同的思維。

用 Azure 快速部署與開發LINE bot / 柯克

第三位講者由柯克分享在 Azure 上快速部署 LINE Bot 的經驗。透過一年有 10 個的免費伺服器額度 (App Services),手把手帶著部署一個 LIFF 網頁的 Hello World 的範例給大家。

並且透過好用的 Azure 圖床可以存放許多 LINE Bot 上面 ImageMap的圖片。 最後介紹 LUIS (微軟的語言理解套件)可以透過這個來打造一個具有文字溝通的聊天機器人。

活動小結

社群分享永遠是讓創意激盪的最佳方式,而 Chatbots Meetup 是一個很熱情與充滿創造力的社群組織。也希望有更多有創意的開發者願意加入 LINE Chatbot 的開發行列,更希望能熱情的參與社群的活動與一起來分享。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[分享][翻譯] LINE Flex Message Template

$
0
0

(翻譯文章) LINE Flex Message Template

前提

本篇文章為翻譯文章,原文為 LINE Flex Message Template from LINE 泰國的 LAE (LINE API Expert) PamornT.

本文

LINE LINE Bot 朋友您好,根據 LINE Chat Bot的個人經驗,發現有一項重要任務是設計對用戶消息和非常流行的消息的回答 - 那就是透過 Flex Message 來發送回覆。

當嘗試與同時創建 LINE Chat Bot 的朋友交談時,他們也必須使用相同的 Flex,我們認為應該共享不同類型的 Flex Message 的樣板作為資源,以節省開發 LINE Chat Bot 的時間,提供開發人員使用和使用。

如果有人想分享 Flex Message,請在下面的鏈接中分享。原作者在這裡收集。謝謝參加的每個人都可以提供幫助。非常感謝你。

https://www.facebook.com/groups/LINEDEVTH/permalink/497494880914423/

請選擇您喜歡的一個,複製圖片下方的鏈接要點,以一起使用 ^^

車牌(泰國格式)

CR。Pamorn Trivorrarat

https://gist.github.com/…/440fb7788e8c501ad7115b7d7ed14a3b


收據

CR。Pamorn Trivorrarat

https://gist.github.com/…/40d8044af1fff88aac97dc74f85f5a4b


登機證

CR.Siratee Kittiwitchaowakul

https://gist.github.com/…/e9b33491edf45416cd124b8234051379


油價

CR。Charoensin缺陷

https://gist.github.com/…/0689bc210a2a8f5ccb3a352e70f72583


餐廳排隊卡

CR.Siratee Kittiwitchaowakul

https://gist.github.com/sirateek/f7ad9562bbdc500d87cfa27768e83292


追踪包裹運送狀態

CR。Pamorn Trivorrarat

https://gist.github.com/PamornT/086a249fad9b99a6d49db4b1b57ee116


足球比分表

CR.Sitthi Thiammekha)

https://medium.com/linedevth/worldcup-flex-864fb27db1a2


圖表

CR。Pamorn Trivorrarat

https://gist.github.com/PamornT/7990f0d5431ac92a4b404323058bdc4e


附註:任何想要分享,添加,分享到此文章的人,非常感謝你。 https://www.facebook.com/groups/LINEDEVTH/permalink/497494880914423/

[心得] Go Developer Survey 2019 (2: Developer Tools)

$
0
0

前提

Golang 協會日前公布了去年的開發者調查結果。

Go Developer Survey 2019 Results

tl;pr (Too Long, Please Read) 我知道這個調查很長,你一定不會讀。我來幫你每天挑一個重點給你喔。

“Developer tools”

今天來討(ㄧ ㄣ \/)論(ㄓ ㄢ \)關於開發者工具的部分。

“你都在哪裡開發 Go?”

第一名: VS Code (16% -> 41 %)

不得不說~現在的 VS Code 真的是相當好用的 IDE(之一),低資源需求加上許多好用的外掛。

第二名: GoLand (15% -> 34%)

近期發表許多好用的功能,完美的整合讓 Go 開發環境整個完美而容易使用。 JetBrains 的 GoLand 真的相當好用,有喜歡的記得授權買下去!

第三名: Vim (28% -> 14%)

身為最好用 IDE? 的 Vim (誰說是 IDE? 明明就是 OS?) 佔有率竟然慢慢的下滑。 可能因為其他工具的整合性越來越高,對於 console mode 的整合也變得很方便。 許多也都有提供 vim mode (咦?) 讓 vim 的佔有率慢慢減少。

你是用哪套 IDE 呢? 歡迎各位來討論喔!!

[研討會心得][DSC] 使用 Go 來打造 LINE 聊天機器人

$
0
0

前言

大家好,我是 LINE Taiwan 的 Technology Evangelist - Evan Lin。 感謝 DSC (Google Developer Student Clubs) 的邀請,在線上給予學生們基本的課程。 內容將有 Golang 的基本介紹,並且透過打造一個簡單的 LINE Bot 來跟各位展示 Golang 的一些優點。

這次有來自於四間大學(中興大學,台北大學,臺北科技大學以及銘傳大學)的 DSC 社團同學 ,全程也開放網路直播,希望可以讓更多對於 LINE Bot 有興趣的初學者一個良好的教材。

Build LINE Bot with Go / 資深開發技術推廣工程師 Evan Lin

投影片

這一次分享的投影片,主軸分成三個:

為什麼我會學習 Golang ? 什麼是 Golang?

經過了十年在多媒體外商軟體公司的工作之後,為了學習新的 Web 程式語言進而嘗試了不少的程式語言之後,最後選擇了 Golang 來鑽研。並且為了深入的學習 Golang ,而啟動了 Project 52來作為學習 Golang 的方式,也因此學習了不少的演算法與進階的資料格式的應用方式。

這裡也介紹了一些 Golang 的基本優點:

  • Gofmt / goimport:幫助你可以讓你的程式碼風格一致並且避免遺漏某一些需要使用的套件。
  • Go test:幫助你快速準備好測試的方式,撰寫測試程式碼再也不困難。並且可以相當快速的做好效能調校的工作。
  • GoDoc:做文件一直是讓開發人員很困擾的事情,不是因為開發人員不願意寫。往往是輸出到文件需要有一些相關的轉換,或是需要許多額外的資料在程式碼之中。 使用 GoDoc只要開發者的程式碼已經寫好了,就可以直接在網路上找到(舉例: https://pkg.go.dev/github.com/line/line-bot-sdk-go/linebot就是直接將 https://github.com/line/line-bot-sdk-go/linebot轉換成文件的網站。
  • GoRoutine:做 multiple routine programming 在許多語言其實都有一些困難跟繁瑣。除了多線程模型本身就需要有相當多需要注意的東西之外,要建置這樣的所需的程式碼其實也很複雜。使用 goroutine相當的輕量,並且相當的容易。開發者可以把心力全部放在如何處理多線程的相關控制上。

如何學習 Golang :

由於這次主要的聽眾都還是大學的學生(部分還是大一的學生),所以許多的操作範例都是直接在 Golang Playground 來進行操作。可以省去許多程式初學者經常遇到的環境設置的問題。

同時也建議初學者可以把出現問題的程式碼透過 Golang Playground來,分享出來在各種社群媒體來詢問。這樣一來也容易察覺問題與解決問題。

同時也建議同學們可以透過 Golang Tour來一步一步的學習相關的知識,每一頁都有程式碼可以使用,可以線上編輯與執行。也可以透過邊練習,邊了解的方式更快速能夠加深印象。

什麼是 LINE Bot ? 如何透過 Golang 快速打造出一個 LINE Bot ?

學習一個語言最好的方式就是馬上透過它來打造一個東西,不論是一個產品,一個服務甚至是一個小工具。 在這裡相當建議各位透過打造 LINE Bot 來作為學習 Golang 的方式。主要的理由如下:

  • 打造 LINE Bot 不需要高深的美術觀念,對於一些 UI 美感有困難的人。學習 LINE Bot 不僅僅可以更快入手,並且可以讓開發者更專注在程式本身的功能上。
  • 使用正確的平台與訊息發送方式, LINE Bot 的開發是不需要任何費用。 在影片中的範例,展示透過 Heroku 作為伺服器的平台。打造出來的 LINE Bot 因為僅僅是回覆使用者的問題,也不需要任何額外的費用產生。
  • LINE 是一個相當好的工具(或是服務)的發佈平台,如果開發者們開發出相當有用的工具,透過 LINE 可以快速的推薦給親朋好友。而且不需要類似上架 App 的繁瑣的審核過程,發布的流程也是相當的快速。

接下來開始講解如何快速打造一個 LINE Bot:

範例程式碼: https://github.com/kkdai/LineBotTemplate

1. 先去 LINE 官方網站申請機器人帳號 (LINE Bot )

img

  • 請先確認有在 LINE Developer Console 開啟帳號
  • 然後建立一個 Messaging API Channel
  • 在 “Basic Setting” 頁面,取得 Channel Secret
  • 在 “Messaging API” 頁面,去申請 Channel Access Token
  • 在 “Basic Setting” 頁面,將 LINE 官方帳號管理介面打開
  • 到回覆設定的選項中,選擇啟動 “webhook”

2. Deploy LINE Bot template

記得到 https://github.com/kkdai/LineBotTemplate 然後點選下方的 Deploy 按鈕,將基本的程式碼 Deploy 到你的 heroku 之中.

Deploy

  • 輸入剛剛取得的 Channel Access TokenChannel Secret
  • 請記住你設定的 Heroku App ID ,稍後會使用到。

3. 回到 LINE Bot Dashboard 設定基本資料

到你的 “Basic account information” 來設定,以下一些資料需要填好:

  • Callback URL: https://{YOUR_HEROKU_SERVER_ID}.herokuapp.com/callback

好了… 加入你的機器人.開始跟他講話吧.

這份程式碼是最簡單的範例,設定好之後他只會重複你打的文字.更多的功能會放在另外一份.

影片教學

可以根據以下影片的教學來看如何在五分鐘之內部署自己的 LINE Bot

想要修改代碼嗎?參考以下的影片教學吧

還有問題嗎? 歡迎在 github 上面開啟 issue詢問。

如何成為 Golang 的專家?

最後因為分享 Golang 與 Project 52的原因,因為參與了不少的社群活動與研討會,變成了 Golang Taipei 的主辦人之一,透過持續的分享與社群的經營,我才有幸能夠到 LINE 從事 Developer Relations 的工作並且變成了 Go GDE 。 在此也跟大家分享快速地學習 Golang 的小秘訣。

培養技術寫作的習慣:

由於主要旁聽的聽眾都是學生,在此也相當鼓勵學生們在學習一門新的技術,或是程式語言,透過寫作可以快速讓你不斷的反思學習到知識,並且會想要更深入的去了解。 比如說,學習到一個新的語言功能,試著把它寫成一個 TIL (Today I Learn) 透過這個方式,不僅僅可以讓你加深印象,事後透過網路搜尋可以幫助到許多有著相同問題的人(甚至就是你自己)。

使用 Golang 打造任何東西

學習(程式)語言最好的方式,就是去使用它。所以在這裡也相當建議同學們能夠實際上手去打造任何的小工具。不論是一個 LINE Bot 還是一些日常的小工具。 透過動手去打造他,才能了解每個語言之間的奧妙,才能知道某一些需要注意的地方。

分享!分享!記得要分享!!!

經常有人問我,為何能夠經常在各種場合去分享。 我也誠實的告知,其實分享的途中我學習到的更多:

  • 因為需要分享,我會將我了解的事物變成投影片,變成講稿。
  • 因為需要分享,我需要重新思考要如何讓不懂的人能夠了解我的問題與解決方式。
  • 因為需要分享,在口語之間我發現我了解得更深入,並且更容易記住。

所以也建議每位同學,一定要抓住機會去分享。

相關鏈結:

活動小結

很開心跟學生們分享 Golang 與 LINE Bot 的結合,記得上一次講到相關的介紹內容的時候,已經是四年前的事情了。 所以許多的素材與原始碼都需要翻新。 並且也準備好一些新的影片教學,也真的希望想要學習打造 LINE Bot 的朋友們,可以更快速的入手,也希望有任何問題可以到 LINE 的官方討論區或是「LINE開發者官方社群」官方帳號來詢問。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[LINE][教學] 如何使用新 API 來有效地發送與接收 LINE Emoji

$
0
0

前言

LINE Emoji 是指在 LINE App 中可以使用的 LINE 表情集,其中有分為通用的(免費)與付費的表情集。 使用 LINE Emoji 在訊息當中可以讓使用者閱讀的時候更有感覺。 但是身為開發者該如何正確地發送與接受處理這些 LINE Emoji 呢?

這一篇文章將透過 Golang 的範例程式碼,指引該如何正確地發送與接受 LINE 表情集 (LINE Emoji) 。

範例程式碼

https://github.com/kkdai/linebot-emoji

實際跑一個範例 (demo)

  • 加入這個官方帳號:

img

  • 隨便傳送一個表情符號,會看到聊天機器人用三種方式回覆你。 分別是:
    • 舊的 Emoji 傳遞方式來發送
    • 新的 Emoji 傳遞方式來發送
    • 加上使用者的 Emoji 並且透過新的 Emoji 來發送

新的 API 說明:

Use LINE emoji in messages (2020/April)

現在開始要在文字訊息裡面發送 LINE emoji 不需要自行做 unicode 轉換。可以直接在 API 中加上相關的 LINE emoji 編號就可以達成了,開發上變得更方便,也更有彈性。

可以參考新的 API : Text message或是參考新的公告:[Updated] Messaging API update for April 2020

Getting LINE emoji information from the text object of a webhook event (2020/May)

在四月提供了新的發送 API 之後,五月的 Webhook 也提供了新的 Webhook 資訊可以讓聊天機器人有效的處理 LINE Emoji 。 透過 emojis可以取得所有訊息中出現的 LINE Emoji 詳細資訊如下:

可以參考新的 API : Text message webhook或是參考新的公告:Messaging API update for May 2020

使用 Golang 開發一個 LINE Emoji Echo Bot:

接下來的會使用 Golang ,根據 https://github.com/line/line-bot-sdk-go提供的功能來開發 Echo Bot 。也就是一個會依照使用者講的文字來回覆的聊天機器人。 但是不同於一般 Echo Chatbot ,這個 Echo Bot 將會回傳使用者傳過來的 LINE Emoji ,所以需要具有以下幾個功能:

  • 擷取 Webhook text Message 中的 emojis資訊 。
  • 將原先文字中的 (xxx) (作為表示表情符號的意思,舉例來說 (heart) 是愛心),替換成 $
  • 組合需要回覆使用者的文字與表情,需要注意的事情有兩件:
    • 將使用者回覆的文字加上 emoji資訊,裡面需要注意,相關的 index資訊需要調整。
    • 傳送 emoji前要注意,是否是存在於可發送的表情清單(sendable LINE Emoji list)。 由於某一些表情包是需要付費的,只有免費且是 LINE 官方提供使用的可以透過聊天機器人來傳送。 詳情請看: LINE Sendable LINE Emoji List

接下來將透過原始碼的說明來解釋相關的流程:

擷取 Webhook text Message 中的 emojis資訊 :

收到 text message 的 webhook 之後,會多了一個資料可以讀取 msg.Emojis的 array structure 。 每一格資料可能是類似一下的資料格式:

根據以上收到的資料可以發現以下資訊:

  • text: 為 Hello, world! (love),其中 Emoji 也會轉成文字在原先的 text 之中為 (love)
  • emojis: 為出現的所有 Emoji ,並且提供起始的 indexlength。其中 index為 zero-based , length包括了 ()

根據以上的資訊,如果你需要將表情符號去掉來做 Language Understanding (語意分析)的話。需要透過以下步驟:

  • Hello, world! (love)參考 Emojis資料將 (love)去除,並且重新組合為 Hello, world!

透過新的 LINE Emoji API 來發送表情符號:

根據以上的範例程式碼,可以知道要發送的資料格式如下:

  • text: "$%s 你好 \n , 這是新的傳送 Emoji 的方式。"其中 $為你要傳 LINE Emoji 的位子,而 %s是要跟使用者傳來的訊息組合成的訊息。
  • AddEmoji: 就是你要傳遞的 LINE Emoji ,其中有 ProductIDEmojiID需要去 LINE Sendable LINE Emoji List查詢。 本段範例為 熊大的範例 (ProdctID=5ac1bfd5040ab15980c9b435, EmojiID=086)

根據這樣的方式所完成的 Echo Bot 只能夠完整的傳遞使用者的文字,但是使用者傳送的 LINE Emoji 無法正確被顯示。 (會顯示為 (love)或是 (heart))。

完整回傳使用者傳來的 LINE Emoji 訊息

那麼要如何完整的回傳呢? 需要透過以下三個大步驟:

  • 讀取原先使用者傳來問自訊息,並且開始解析 LINE Emoji
  • 將原先有 (brown)的訊息,替換成 $。作為之後需要傳送的時候使用。
  • 將原先使用者傳送的文字,夾帶成聊天機器人要傳送的文字之中。並且將 Emojisˋ中所有的 index 做位置上的修改( index的位置因為機器人一些其他文字而改變)。

接下來,會稍微分享一下相關的轉換方式:

這部分主要功用是將使用者傳來具有 LINE Emoji 的訊息,轉換為 $。 (e.g. Hello, world! (love)–> Hello, world! $) 。 裡面主要用到字串的拆解方式,也就是 string(msgArray[:index]), "$", string(msgArray[index+v.Length:]來拆解文字並且重新組合。

撰寫相關文字轉換的測試案例:

因為可能會遇到的種類相當的多(e.g. hi, _(brown)_, yo (love) (love) ),所以為了怕可能遇到的問題。我們也準備好相當多的測試程式碼。在此先附上部分的,完整的測試範例建議到 https://github.com/kkdai/LineBot-emoji/blob/master/tool_test.go查看。

本段測試程式碼,僅僅對於整段文字裡面出現一個或是沒有的測試案例。 透過撰寫足夠完善的測試案例,可以讓整個 chatbot 的穩定度更好,也不需要透過部署就能夠把一些預先可見的錯誤找出來。

檢查是否是“可傳送的表情服務”:

由於某一些表情包是需要付費的,只有免費且是 LINE 官方提供使用的可以透過聊天機器人來傳送。 詳情請看: LINE Sendable LINE Emoji List

如果傳送非免費的 LINE Emoji 資料給伺服器,則會收到錯誤訊息。所以這段是透過整理出來的資料來做檢查。

完整的轉換與檢查流程:

快速講解一下,相關應用程式碼:

  • (5) workMsg := ReplaceEmoji(msg.Text, msg.Emojis): 將收到的使用者文字取代為 $
  • (17)lastLength = lastLength + v.Length: 這邊值得分享的是計算轉換後的 $位址,需要透過原本 Emoji 的長度來計算出來。 這樣才能算出每一個表情符號取代文字 $應該出現的 index

總結與展望未來 (Summary and Future Work)

透過 LINE Emoji 的 API ,讓開發者在傳送表情符號的處理上變得更加的直覺與簡單。也讓聊天機器人跟使用者之之間的互動變得更沒有距離。 不過如果需要將使用者傳過來的文字(加上表情符號)回傳回去的話,就需要有許多額外的處理。

之後可能針對這些部分可以有以下的相關處理:

  • 自然語言前處理:如果想要針對使用者回覆的文字來做語意分析(Language Understanding) 那麼勢必要定義對於 LINE Emoji 的處理方式。開發者可以選擇全部忽略,或是將其放入分析器中。
  • 針對表情符號來互動:使用者會使用表情符號,都會是有相對意義的。某些狀況下,可以透過表情符號(emoji) 來判斷使用者的情緒。 這也是一門相當大的學問才是。

參考


[研討會心得] 2020/05/26 Golang#49 @online

$
0
0

前言

大家好,我是 LINE Taiwan 的 Tech Evangelist - Evan Lin。這次很開心受到 Golang 社群的邀請,參加了 “Golang Taipei Gathering #49 Webinar” 的聚會活動,並且分享 Golang 開發的一些技巧與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓 Golang 更受到人了解。

由於防疫的要求,這次是在線上參與這次的聚會活動。很感謝每一位參與的朋友帶來的問題,希望透過線上以及錄影的方式可以讓更多的朋友可以了解。

LeetCode 挑戰 / 阿物股份有限公司 - 船長

影片:

投影片: https://eehsiao.github.io/LeetCode20200526-gtg49.pdf

船長分享如何透過寫 LeetCode 來 「舒壓」,並且可已透過寫 LeetCode 來對於許多演算法的學習更加深入。

Q&A:

記錄一些當天有人詢問有趣的問題:

  • Q: 有推薦的哪些常用 function 或是工具可以加速解題嗎?
    • A: 沒有常用的工具,但是有準備一些 tree 跟 graph 作為加速解決問題的方法。
  • Q: LeetCode 是否能幫助平日的開發工作?
    • A: 可以,幫助相關思考。
  • Q: LeetCode 真的需要花時間刷嗎?如果已經有其他經驗了
    • A: 許多大型跨國公司依舊需要透過 LeetCode 刷題。

如何使用 Golang從 Youtube 抓下影片 / 資深開發技術推廣工程師 Evan Lin

影片:

投影片:

這次主要是分享如何透過 Golang 來抓取 YouTube 影片的經驗分享與相關方法介紹:

專案: github.com/kkdai/youtube

Github: https://github.com/kkdai/youtube

直接下載使用:
- go install github.com/kkdai/youtube/youtubedr

用法1: (另存檔名為 Campaign Diary.mp4)
youtubedr -o "Campaign Diary".mp4 https://www.youtube.com/watch\?v\=XbNghLqsVwU

用法2: (不指定檔名,而使用影片標題)
youtubedr https://www.youtube.com/watch\?v\=XbNghLqsVwU

更多資訊歡迎參考這篇文章: [TIL][Golang] 如何抓取 Youtube 影片的相關資訊,與使用 Go 下載 Youtube 影片

Q&A:

記錄一些當天有人詢問有趣的問題:

  • Q: 未來會提供直接下載 youtube list 的功能嗎?
    • A: Playlist 尚不支援,基本上 Playlist 可能需要用到 YouTube API。
  • Q: 會想要支援其他平台,像是 facebook 或是 instagram 嗎?
    • A: Instagram 之前有寫過,不過後來都強制需要開發者帳戶。而且有所次數。 https://github.com/kkdai/goInstagramDownloader 。 臉書的部分也需要透過開發者帳戶,並且需要使用 FB Graph API 。
  • Q: 請問可以用用爬蟲的方式把資料爬出來嗎?
    • A: 這個方式就是爬蟲的方式,只是因為原本就需要透過 js 來 decipher 。
  • Q: Youtube 上頭有很多種影片格式,甚至是影音分開,都會透過這個API提供URL嗎?
    • A: 這個方式可以找到所有支援格式(與解析度)
  • Q: 可以直接執行那一個 JS 檔案嗎?
    • A: 透過寫前端的方式,可以直接執行。這邊是展示透過後端模擬前端。

活動小結

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[研討會心得] 2020/05/27 Chatbots 19 @online 與 2020 May LINE 平台更新整理報告

$
0
0

前言

大家好,我是 LINE Taiwan 的 Tech Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatbot meetup 聊天機器人小小聚 19 @Online” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。

由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。

由於防疫的要求,這次是在線上參與這次的聚會活動。很感謝每一位參與的朋友帶來的問題,希望透過線上以及錄影的方式可以讓更多的朋友可以了解。

LINE Platform Update 202005 / 資深開發技術推廣工程師 Evan Lin

投影片

04/30: liff.getLineVersion() and liff.id added to LIFF v2

雖然之前 LIFF 有提供了 liff.isApiAvailable()的功能來檢查該 API 是否能夠支援。 但是許多時候,開發者是需要取得使用者的 LINE App 版本來對於問題的復現與除錯之用。 這時候可以透過 LIFF 的 liff.getLineVersion()可以取得目前執行這個 LIFF 的 LINE App 版本號碼。 當然如果使用者是使用 External Browser 來開啟 LIFF 的話這個就會回傳 null

05/08: LIFF Versioning policy and life cycle have been released

接下來這個部分是討論 LIFF 的 Versioning policy 之後將採取 Semantic Versioning 也就是針對版本號碼的管理,將依照以下原則: MAJOR.MINOR.PATCH。至於 MAJORMINORPATCH分別代表什麼意義,歡迎查看相關資料。

此外,這一次的公告也提出了。將版本停止支援( End-of-life) 之後,相關的 SDK 也會從 CDN 移除,也就不會有任何 API 可以使用。

最後,也是最重要的就是開發者們關心的 LIFF 支援的週期: LIFF v1 將支援到 2021 的九月

希望所有開發者能夠記住這個時間,儘早準備 migrate LIFF App 到 LIFF v2 。

05/12: Messaging API update for May 2020

Message character limit and media file usage conditions have been changed

又到了每個月的平台更新相關解說,五月份的平台更新。第一個部分的更新,是關於 Messaging API 有一些訊息的額度要增加了。 依序有相關的 Image Message, Video Message 跟 Text Message 的上限增加。 需要的人可以查看這個部分

Getting LINE emoji information from the text object of a webhook event

第二個部分的更新是新增了 LINE Emoji webhook 的支援,讓開發者可以收到使用者傳來的 LINE Emoji 訊息資料。 詳細的部分歡迎查看: 關於 LINE Emoji 的一些細節(以 Golang 為例)

Safely retrying a failed API request

許多開發者在發送 Broadcast 或是 Multicast 訊息的時候,可能因為訊息量過大沒有收到平台這邊回覆正確。 也有可能因為某些意外狀況平台回覆並非正常的狀況,造成開發者們無法確認使用者有沒有收到正確的訊息。 以往的狀況是透過重複發送的方式來確保使用者能夠收到訊息,但是如此一來有不少重複的使用者可能會收到重複的訊息,進而造成費用的重複計算。

這一次五月的更新,提供了 “Safely retrying” 機制。 可以讓開發者測試一下上次的訊息是否有正確的發送成功,並且也可以確保有無任何的使用者被漏發了。 相關的使用情境如下:

  • 上次不知道有無法送完成,呼叫 “Safely retrying” 可以重複發送同一則訊息。 有收過得不會收到重複訊息,沒收到的可以確保收到。
  • 上次發送發生了平台無法完成指令的意外,透過 “Safely retrying” 可以跟平台確認上次的狀況。 如果上次有完整發送完畢,也不會有重複計費的疑慮。

05/19 OGP tags are now available in the LIFF app

OGP (Open Graph Protocol) 原本就是一個給 SNS 或是瀏覽器作為擷取縮圖與相關資訊的協定。 但是之前透過 http://liff.line.me 的轉址原因,無法正確讓 LIFF 上面的 OGP 成功運作。 現在也已經正常的支援,不論是哪一種 LIFF 資訊都可以透過填寫正確的 OGP 資訊在其他 SNS (或是 LINE App) 上取得正確的資訊與縮圖。

之前透過 LIFF 進去某個頁面後,無法正確的取得某個子頁面的網址作為傳遞與分享。 現在可以透過 liff.permanentLink.createUrl()的新支援的 API 來分享 LIFF 頁面給其他使用者。 也可以透過 liff.permanentLink.setExtraQueryParams()來幫忙將使用者目前的環境參數用來組合相關的資訊,成為一整個可以分享的網址。

LINE Beacon 的介紹:

最後也跟開發者們分享,目前的 LINE Beacon 也已經正式開始營運。有任何開發上需求的開發者(或是業者),歡迎透過 LINE for Business與經銷業務接洽。 主要的差別,除了可以使用 Beacon Banner之外,也可以大量的部署與推廣。更有相關的平台可以讓你設定許多有用的訊息推廣。

使用 lotify + Swagger 建置可共用的 LINE Notify bot / LINE API Expert - NiJia

影片

投影片

第二位是 LINE API Expert 的 NiJia 帶來的 LINE Notify 套件 (lotify) 的說明。lotify (https://github.com/louis70109/lotify) 是一個 Python 開發的 LINE Notify SDK ,可以幫助開發者快速上手並且讓開發者除了發送之外,還可以產生網址跟換 Token 的功能都有支援。 並且還有以下的特點:

  • 快速部署 Heroku
  • Client library
  • Swagger 文件
  • Openapi generator
  • JS 使用範例

github: https://github.com/louis70109/lotify

如何在 LIFF 傳送隱藏資料給機器人 / 微程式股份有限公司 - 均民

影片

投影片

講者透過分享了透過 liff.sendMessage() 來發送一個 2x1 的透明圖片的方式來夾帶不同的資訊給 LINE Bot 的 Webhook 端。 透過這樣可以將資訊從 LIFF 前端帶給 LINE Bot 並且因為是發送訊息的方式,就可以有 replyToken 可以回覆給使用者。

相關的部落格文章: https://taichunmin.idv.tw/blog/2020-04-07-line-liff-send-hidden-data.html

閃電秀 - LINEBOT 學習地圖】 - #Jeffrey

影片

投影片

講者 Jeffrey 近期在社群分享了一系列的 LINE Bot 學習地圖的影片,透過手繪圖的分享方式來談談 LINE Bot 在分析了 LINE Bot 互動行為的種類,也分享了設計上應該要如何能夠解決使用者的需求。

很推薦任何人都可以聽,從 UX 與設計方面來對於 LINE Bot 有了更多更廣的了解。

活動小結

社群分享永遠是讓創意激盪的最佳方式,而 Chatbots Meetup 是一個很熱情與充滿創造力的社群組織。也希望有更多有創意的開發者願意加入 LINE Chatbot 的開發行列,更希望能熱情的參與社群的活動與一起來分享。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[TIL]關於 VIM 的錯誤訊息: Exception not caught: [vim-hug-neovim-rpc] requires `:pythonx import neovim` command to work

$
0
0

問題

 Exception not caught: [vim-hug-neovim-rpc] requires `:pythonx import [pynvim | neovim]` command to work

每次只要透過 brew upgrade來更新 vim ,就很容易發生以下的問題。(應該是跟更新了 python 有關)。

不論跑 :pythonx import pynvim或是 :pythonx import neovim都是一樣的。

找了很久才找到解答:

解答:

參考 Error Every time I load in vim8 (not neovim)可以看到以下解法:

  • brew link --overwrite python@3.8 --force
  • pip3 install pynvim

也可以透過:

echo 'export PATH="/usr/local/opt/python@3.8/bin:$PATH"' >> ~/.zshrc

來解決。

相關鏈結:

Error Every time I load in vim8 (not neovim)

[研討會心得] 2020/06/12 LINE Developer Meetup 12

$
0
0

前提

大家好,我是 LINE Taiwan DevRel 團隊的 Evan Lin。很開心在這裡跟各位分享本年度的第二場開發者小聚。 由於新冠肺炎疫情影響,此次的活動改為線上活動並且透過 LINE OA Live 的方式播放給所有的參與者了解,也在後續會官方粉絲專頁與官方的開發者 Youtube 頻道開放完整的影片給想要參與的開發者共襄盛舉。

KKTIX 活動網頁: 活動網址

本次 LINE Developer Meetup 開發者小聚,有邀請到兩位講者來分享關於 LINE 平台的開發經驗。首先由 LINE TAXI CTO Hayden Huang 來跟大家分享 LINE TAXI 的開發經驗 「LINE TAXI from 0 to 1」。

第二位邀請到 DeepQ Technology Corp. Tony Huang 黃振綸 來跟大家介紹什麼是「疫止神通」。

LINE TECH FRESH (LINE 技術新星人才計劃) 學生實習計畫宣傳 / 資深開發技術推廣工程師 - Evan Lin

首先上場的就是筆者,並且來分享 LINE TECH FRESH 計畫給莘莘學子瞭解。 LINE 台灣工程團隊每年透過 LINE TECH FRESH – 技術新星人才計劃,招募資訊科技相關科系,或對此領域有所涉略的大學生 / 研究生加入 LINE 團隊進行長期實習 (一年期),讓同學們能在國際級科技公司中觀摩學習。

更多內容,可以參考這篇文章: LINE TECH FRESH – 技術新星人才計劃,實習經驗大公開

LINE TAXI from 0 to 1 / LINE TAXI - CTO Hayden Huang

緊接的第二位講者就是 LINE TAXI 技術漲 Hayden 所帶來的 “LINE TAXI from 0 to 1” 的技術分享。

LINE TAXI 簡介

「LINE TAXI叫車平台」與台灣新創團隊TaxiGo合作,將原有「TaxiGo叫車平台」改版升級後,於今天正式更名為「LINE TAXI叫車平台」。而TaxiGo於線下經營的實體車隊,則持續由TaxiGo團隊運營。 TaxiGo是原生台灣的新創團隊,主打以LINE聊天機器人叫車,提供準確即時、安全舒適的叫車服務,在2017年創立,並即加入「LINE新星計畫」(網址 https://protostar.line.me/zh-tw/ )接受育成輔導。 除了線上叫車平台,TaxiGo也同時建立了實體車隊,在LINE正致力推動線下服務與線上平台的板塊整合之際, TaxiGo團隊的命題,與LINE的企業發展策略極為契合,在雙方團隊的努力下,LINE正式邀請TaxiGo加入LINE的生態系,也使TaxiGo成為LINE新星計畫中,從育成輔導到與LINE正式合作的首例! (相關新聞,歡迎參考: 攜手TaxiGo LINE TAXI叫車平台正式上線 連結車隊與用戶的開放平台 同步招募台灣在地車隊加入)

使用 LINE 作為客戶端軟體的契機

當初開發的時候,原本就有開發好兩個平台的應用:司機端的 App 應用, 與客戶端的應用。 因為希望能給客戶最新的功能,能夠快速的讓產品迭代。所以在 2017 上市的時候就跟上了 LINE chatbot 的熱潮,透過 LINE 官方帳號,使用者再也不需要另外下載 App 。也可以很快速很方便地在 LINE 上面就可以使用到叫車的服務。 而司機端依舊使用 iOS 與 Android 的 App 來開發,因為這樣才能全程的紀錄車輛的狀況,讓車輛的派遣能夠更加的精準。

清楚明瞭的叫車流程與跟司機的互動

透過 Flex Message 來顯示叫車結果, 司機的相關資料可以一目瞭然。清楚的可以知道上車地點,司機名稱,車號,車款與預計到達的時間。 並且可以透過地圖顯示來即時查看車輛與乘客的相對位置。 透過 Flex Message 也可以一鍵分享行程給你的親朋好友。 並且這也有一個相當有用的功能叫做「聯絡司機」,透過 API Server 所搭建成的虛擬線路。司機與乘客不需要互為好友,但是也可以傳遞訊息,或是通電話。 這樣的互傳狀況將會維持兩個小時,為的就是避免乘客有物品遺失需要司機的協助狀況。 並且透過 LINE Pay 也可以快速付款,並且迅速地取得乘客的評分。

Chatbot 與 App 的比較圖

這一張圖很清楚的羅列了, Chatbot 與 App 的開發比較圖。 可以看出來:

Chatbot 具有以下的優點:

  • 導入用戶較快
  • 回應更快速與直覺

透過以上的優點,很適合作為客戶端的軟體使用。

而 App 的開發優點如下:

  • 豐富的 UI
  • 使用者比較習慣

對於司機大哥而言,這些優點又是相當重要的。

開發 LINE chatbot 兩個小技巧分享

Hayden 這次的也分享了兩個開發上的小技巧:

追蹤好友如何加入

在創業初期的時候,每一個新增的用戶都很重要,每一筆廣告經費更是重要。 所以要如何把錢花在刀口上,讓每一分錢能確認最容易找到客戶,就是 LINE TAXI 初期很重要的事情。透過在 Flex Message 中塞入一個小的圖片。由於圖片在讀取的時候帶著參數就不同,比如說不同的廣告來源,讓進來的圖片參數就不同。 如此一來在客戶點擊 Flex Message 上面的按鈕的時候,就可以將相關的參數帶到 API Server 上,透過這樣的方式來瞭解客戶是透過哪些廣告渠道而加入的。每一分錢也就能花得更值得。

如何做到好友推薦

好友推薦 (Member gain member) 對於客群的擴展相當的重要,但是如何正確地記錄到讓哪一位使用者推薦的是相當困難的。 透過了 LIFF 的推薦與分享按鈕,可以重送不同的鏈結並且在後端帶著不同的參數。 這樣一來就可以正確地記錄使用者 A 推薦了使用者 B 並且正確加入好友的完整流程。 而且透過 LINE 來分享好康訊息給好友也更加的直接與有效。

如何達到有效的派遣

計程車畢竟還是一個人的產業,不論是乘客還是司機都是需要被照顧到。 透過有效的派遣系統,可以讓客戶在合理的時間搭乘到車子,也能讓每一位司機都能夠再到客戶達成互惠的狀態。 一開始的時候,派遣僅針對最近的車輛來派車,這樣一來往往在熱門區域將會很快的滿檔, 造成後面叫車的乘客必須要等待非常的久。

經過有效的分配,並不是透過最近的司機馬上分配乘客。透過有效的計算與分配,讓司機都可以儘量的載到客戶,也讓乘客可以合理的狀況下都能夠搭到車子。

Q&A

問: 如何處理車輛派遣上大數據?

這部分就將數據分成兩大塊,即時資料與分析型資料。將即時資料做即時性的處理,而分析型資料則透過事後的批次處理來節省計算資源。 如此一來就可以更有效地讓讓資料可以有效地被處理到,也讓需要分析型的資料放在資料庫中,做為事後的處理與再利用。

問:如何處理因為程式錯誤而造成的客訴問題?

有時候因為地區偏遠的因素,造成即將下車的客戶往往因為網路因素而無法順利完成結帳。 造成許多困擾,為了讓乘客與司機的體驗更加的提升,近期也有推出「自動結帳」功能。 透過設定好綁定的信用卡或是 LINE Pay 帳戶就可以在下車的時候直接結帳。不必擔心下車的時候手忙腳亂了。

問:為何不直接派遣給最近的司機而是要多派給幾位而等待他們接單呢?

因為計程車業畢竟是一個人的產業,司機都是有牌照的小黃計程車司機。有些時候,可能他們所在的路段就可以在路邊招到客人,這時候就不適合直接分發給他們乘客。 不像是「多元計程車」只能接受網路上的網路預約而無法在路邊攬客。希望每一位 LINE TAXI 的乘客能夠了解?

疫止神通 / DeepQ Technology Corp. Tony Huang 黃振綸

第二段則是邀請到了「疫止神通 」的開發團隊 Tony 來為大家分享開發疫止神通的經過。

由於新冠病毒的影響,許多入境的旅客都需要隔離。以往的方式都是透過里長或是里幹事來追蹤隔離的民眾。但是許多民眾有很多問題與相關的詢問需要被解答,這時候透過 LINE Bot 是一個有效且相當安全的方式,這也是「疫止神通 」的初衷。

「疫止神通 」相關功能:

  • 確認入境資料。
  • 每天自動提醒自我檢測的狀況。
  • 提供疫情相關的資訊與注意事項給予隔離的民眾。

而 LIFF 與 Flex Message 更是在開發中給予相當的幫助,讓 LINE Chatbot 與用戶的溝通變得更多元。 歡迎大家觀看影片來了解更多開發的秘辛與團隊的相關經歷。

參與人員的詢問總結

在這裡整理所有參與人員的詢問,希望可以幫助大家。保護提問者就不公布詢問人員的姓名與資料。

(內容尚在整理中)

活動小結

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[好書分享] Deep Work 深度工作力

$
0
0
TDeep Work 深度工作力
淺薄時代,個人成功的關鍵能力
作者: 卡爾.紐波特  
原文作者: Cal Newport  
譯者: 吳國卿  
出版社:時報出版 
出版日期:2017/07/21 

買書推薦網址:http://moo.im/a/389tDJ

前言:

對於工程師與許多需要深度工作的人而言,深度工作的時間是非常珍貴的。許多工作切換的途中帶來太多無謂的移轉性工作的準備時間。嚴重影響工作上的產出,這個叫做「 context switch 」。 那麼如何有效地達到深度工作就是相當重要的課題。之前看到了這本書,決定要好好的學習保留深度工作時間的方法,也推薦給每一位想要讓自己能夠創造更高價值得你,絕對要能夠保有,訓練自己的「深度工作力」。

內容簡介:

當我們抱怨臉書占去太多時間,還在思索要與社群網站保持什麼樣的關係,
MIT電腦科學博士.談論未來職場最具啟發性的思想家
卡爾.紐波特Cal Newport告訴你————
真正的獎賞不會留給那些閒適的使用臉書的人!

在這個淺薄時代,人們紛紛擁抱分心,每天將大把時間浪擲於紛亂的電子郵件和社群媒體上,失去了深度思考、深度工作的能力,不知道自己其實能以更好的方式生活。
也因此,一種極有價值的技術變得越來越稀有、甚至成為當今最具價值的能力之一,正是——
DEEP WORK深度工作力!

卡爾.紐波特教授在本書中暢談連線時代的種種影響,從自身經驗告訴所有人:
專注力和生產力,是可以有系統地解決的科學問題!
擁有深度工作力,是擁有美好深度生活的必要條件!

「深度工作力」是專注於高認知需求任務而不分心的能力,它能讓你快速學習,以更少的時間創造更好的成果。本書融合理論根據與實踐技巧,協助所有想在專業領域中成功的人,學會高效工作,成為新經濟中的贏家。

別再以為忙碌代表生產力,區別深度工作與淺薄工作,聰明的規畫深度工作的時間,培養專注的習慣與能力,你將能改變習於淺薄、容易分心、無法忍受無聊的心智。培養深度工作力,才是達成生活與工作平衡,並維持高品質的最好方法。

本書分為兩大部分,分別是「概念」與「原則」兩大部分:

Part 1 概念

一開始主要是確定究竟什麼是「深度工作」,那麼它與「淺薄工作」的差異。並且分享給讀者了解,許多偉大的學術家,企業家都是深度工作的遵從者,不論自己有多忙碌都要保有深度工作的時間。

接下來開始定義「深度工作」為何稀有,現在人為何很難得達成深度工作。也提到了許多的工作現況往往都是充滿了許多打擾與中斷,會讓工作者容易在深度狀況的情況下被打斷。

那麼從神經學,心理學與哲學的角度究竟該如何把握深度工作的呢? 這一個部分的最後幾個章節會討論到。

Part 2 原則

在原則的部分,則分享許多知名作家或是學術界人士該如何保有自己深度工作的時間。「深度工作」也必須像是運動或是重量訓練一樣需要有儀式。所以書上也建議要讓每個深度工作者都需要一個進入深度工作的儀式,或許在筆者就是準備好一杯咖啡,戴上降噪耳機一樣。一個可以讓你專心進入工作的方式。

建立好自己的「深度工作」習慣之後,就要開始避免「中斷」。許多知名的學者與作家都透過讓自己有效的「斷線」,也就是讓跟自己聯絡的人知道,自己只會在某些時間去檢查與回覆信件。並且也相當程度的限制自己在社群媒體上面的時間。

社群媒體對於許多深度工作人員就是最大分心的來源,必須要有效的限制自己的時間。 書上更是建議說許多知名的作家本身並不操作任何的社群媒體,不與任何的讀者交流,反而可以獲得更多的深度工作的時間。

最後,書上也告訴你如何選擇最重要的事情來優先從事。要根據每一件事情如果交給經過良好訓練的大學畢業生,大概要經過多少訓練。這裡快速整理一下:

  • 做精美的部門報告:一個大學畢業生訓練三個月就可以上手。
  • 去進行一些會議:可能進行兩三年就可以上手。
  • 寫出一篇原創性質文章:則是需要 50 ~ 80 個月的專業訓練才可能上手。 (如果要寫的程度更高,則需要更久遠的訓練與能力的培養)

那麼你就應該要先做「最具競爭力的工作」,這就是這整本的整個概要說明。 就是要提升作為「深度工作者」的你的能力與價值。

心得:

記得曾經看過一篇推特說,身為「Developer Relations 」的工作者都是有“過動症”與“注意力不集中症候群”的人。 並且自己也因為之前經做專案管理的相關訓練,練就了自己「習慣於」被打擾與經常性地切換於許多不同種類的工作之中。 其實靜下心地反省自己,會發現自己能更夠從事深度工作的時間也就變少了。 看了這本書之後,就知道了深度工作的珍貴性。並且要透過有意識的,並且有效的訓練自己。讓自己的注意力就像是肌肉一樣,經過訓練之後可以高度並且有效的深度工作。

最後的章節也像是敲醒我一樣,重新地審視了工作項目中的「不可取代性」的項目。讓自己更了解應該如何有效地增進自己的能力,讓自己更有價值才是。

相當建議需要深度工作的你,不論是軟體工程師,作家,老師,甚至是許多進行開發的人員。要好好的閱讀這本書,並且尋找到適合自己的方式來訓練你的注意力,一起成為更好的深度工作者。

Viewing all 537 articles
Browse latest View live