[NodeJS][Golang] 玩玩看 Line Beacon

栏目: Node.js · 发布时间: 6年前

内容简介:上週五去參加了 Line 的技術者聚會活動,也同時聽到如何透過 Line Beacon 來跟 Line Bot 結合.於是決定把整個官方範例串接起來,並且將整個流程寫的更容易了解.

[NodeJS][Golang] 玩玩看 Line Beacon

前言

上週五去參加了 Line 的技術者聚會活動,也同時聽到如何透過 Line Beacon 來跟 Line Bot 結合.於是決定把整個官方範例串接起來,並且將整個流程寫的更容易了解.

LineBot Beacon 流程

[NodeJS][Golang] 玩玩看 Line Beacon

在這個流程圖裡面,你可以看到整個流程有一點小複雜:

  • 首先使用者的手機接受到 Beacon 的訊號後,手機會將藍牙訊號傳送到 Line App
  • Line App 收到後,發送 Beacon hardware ID 給 Line Server
  • Line Server 根據 hardware ID 轉發給相關的 Line Bot (也附上該使用者的 token)
  • 這時候 Line Bot Webhook 就會收到使用者發送一個 beacon 的 event
  • 跟據不同 Beacon ID 跟 Event (Enter/Leave) 來定義不同的反應方式

根據這樣的流程,可以知道以下幾件事情:

  • Beacon 的控制的事情其實有限 (Enter/Leave)
  • Beacon event 本身提供訊息也只有以下的部分
string Msg         //beacon string
string type        //beacon type
string hardware ID //beacon hardware ID to determine b

根據這些訊息,其實還是能做出很多有趣的運用就要看各位如何發揮想像力.

沒有 LineBeacon 可以測試? 先試試看官方 nodejs 範例

node 10 的 MacOSX 藍芽上似乎有問題

先來透過官方範例來看看,結果似乎有點問題 (20180825):

internal/modules/cjs/loader.js:583
    throw err;
    ^

Error: Cannot find module 'xpc-connection'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object.<anonymous> (/Users/Evan/src/go/src/github.com/kkdai/line-simple-beacon/tools/line-simplebeacon-nodejs-sample/node_modules/bleno/lib/mac/highsierra.js:10:21)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)

跟工程師討論的結果,似乎 node10 再 xpc-connection (也就是要跑 mac 藍牙的這個部分) 所以可能還是要使用 node8 是比較穩定的.

那來幫 nodejs 降版吧

如果你跟我一樣使用 Homebrew 作為套件的管理系統,那麼從 node10 降板到 node8 的方式如下.

brew uninstall        //uninstall node10
brew install <a href="/cdn-cgi/l/email-protection" data-cfemail="3b55545f5e7b03">[email protected]</a>   //install node8

這裡要注意,如果以之前有透過 npm 安裝的部分.最好砍掉重新安裝比較穩定.

Line Beacon 綁定在 Line Bot 上

首先先到 [email protected] Manager 來建立開發者帳號 (developer trial) 的 Beacon Hardware ID

[NodeJS][Golang] 玩玩看 Line Beacon

記得要將你的號碼掛在你需要附屬的 Line Bot 上面.

[NodeJS][Golang] 玩玩看 Line Beacon

LineBot 上面的相關修改

你必須要在你的相對應的 LineBot 上面做了以下的修改,才能讓你的 LineBot 在收到 Line Beacon 訊息的時候給予適當的提醒.


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程之法

编程之法

July / 人民邮电出版社 / 2015-9-1 / 49.00元

本书涉及面试、算法、机器学习三个主题。书中的每道编程题目都给出了多种思路、多种解法,不断优化、逐层递进。本书第1章至第6章分别阐述字符串、数组、树、查找、动态规划、海量数据处理等相关的编程面试题和算法,第7章介绍机器学习的两个算法—K近邻和SVM。此外,每一章都有“举一反三”和“习题”,以便读者及时运用所学的方法解决相似的问题,且在附录中收录了语言、链表、概率等其他题型。书中的每一道题都是面试的高......一起来看看 《编程之法》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具