[NodeJS][Golang] 玩玩看 Line Beacon

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

内容简介:上週五去參加了 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 訊息的時候給予適當的提醒.


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

查看所有标签

猜你喜欢:

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

Building Social Web Applications

Building Social Web Applications

Gavin Bell / O'Reilly Media / 2009-10-1 / USD 34.99

Building a social web application that attracts and retains regular visitors, and gets them to interact, isn't easy to do. This book walks you through the tough questions you'll face if you're to crea......一起来看看 《Building Social Web Applications》 这本书的介绍吧!

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具