成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Facebook Bot 開發(fā)小技巧

fizz / 2681人閱讀

摘要:所以我們需要先將建立完成,因?yàn)樯厦娼o了的網(wǎng)址因此建立同名路由一旦設(shè)定了若要完全移除就是要讓死掉。上敘動(dòng)作完成之後,我們就完成前置作業(yè)了。

流程

準(zhǔn)備環(huán)境

使用 ngrok 取得 https 網(wǎng)址

建立與設(shè)定 Facebook App 與粉絲團(tuán)

建立 webhook GET API

設(shè)定 Facebook App webhook

實(shí)作 webhook POST API 產(chǎn)生對(duì)話

準(zhǔn)備

由於 Facebook bot 在執(zhí)行 API 溝通的時(shí)候需要使用 SSL 協(xié)定即網(wǎng)址要是 https,為了在本地端開發(fā)方便。
因此我們需要使用 ngrok 來(lái)協(xié)助我們產(chǎn)生一個(gè) https 的網(wǎng)址並傳回我們的機(jī)器。當(dāng)然很多文章會(huì)介紹您使用 cloudflare 但這邊為了方便開發(fā)於是使用另外一種 ssh tunnel 的方式來(lái)解決

註冊(cè)並登入 ngrok

下載並安裝 ngrok

完成安裝 ngrok 憑證的流程

# 安裝方式:可以下載檔案並放置到 /usr/lcoal/bin 或者使用 brew
$ brew cask install ngrok
# 登入後會(huì)看到 ngrok 提供的驗(yàn)證指令
$ ngrok authtoken [your_token]

# 開始使用
$ ngrok http [port]

啟動(dòng)之後畫面如下:

建立 Facebook App 與粉絲專頁(yè)

官方教學(xué)

建立好 App 與粉絲團(tuán)之後接下來(lái)為了設(shè)定 webhook,網(wǎng)址的部分請(qǐng)給定 ngrok 的網(wǎng)址,例如
https://[hash_code].ngrok.io/webhook。而 token 則是您自訂任意的字串,稍後需要在 API 中使用驗(yàn)證。

因?yàn)樵O(shè)定 webhook 網(wǎng)址時(shí),facebook 會(huì)發(fā)一個(gè) request 給測(cè)試該網(wǎng)址是否正常運(yùn)作,如果不正確的話,那就沒辦法進(jìn)入下一階段了。
所以我們需要先將 GET API 建立完成,因?yàn)樯厦娼o了 webhook 的網(wǎng)址因此建立同名路由

app.get("/webhook/", function (req, res) {
  if (req.query["hub.verify_token"] === "") {
    res.send(req.query["hub.challenge"]);
  }
  res.send("Error, wrong validation token");
})

一旦設(shè)定了若要完全移除就是要讓 API 死掉 8H。

上敘動(dòng)作完成之後,我們就完成前置作業(yè)了。接著下來(lái)就是實(shí)作與機(jī)器人對(duì)談的部分

var express = require("express")
var bodyParser = require("body-parser")
var request = require("request")
var app = express()
var token = ""
var facebookApi = "https://graph.facebook.com/v2.6/me/messages"

app.use(bodyParser.urlencoded({
  extended: true
}))
app.use(bodyParser.json())

app.get("/", function (req, res) {
  res.send("Hi, server")
})

app.get("/webhook/", function (req, res) {
  if (req.query["hub.verify_token"] === "abcd") {
    res.send(req.query["hub.challenge"]);
  }
  res.send("Error, wrong validation token");
})

app.post("/webhook/", function (req, res) {
  console.log(req.body.entry[0])
  var messages = req.body.entry[0].messaging

  for (var i = 0; i < messages.length; i++) {
    var event = messages[i]
    var sender = event.sender.id

    if (event.message && event.message.text) {
      var text = event.message.text
      sendTextMessage(sender, text)
    }
  }
  res.sendStatus(200)
})

app.listen(8080, function () {
  console.log("Listen on port 8080")
})

/**
 * Functions
 */

function sendTextMessage (sender, text) {
  messageData = {
    text: text
  }

  request({
    url: facebookApi,
    qs: { access_token: token },
    method: "POST",
    json: {
      recipient: { id: sender },
      message: messageData
    }
  }, function (err, res, body) {
    if (err)
      console.log("Error sending message: ", err)
    else if (res.body.error)
      console.log("Error: ", res.body.error)
  })
}

到此我們就完成了一個(gè)簡(jiǎn)單的 Facebook BOT 應(yīng)用。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/80209.html

相關(guān)文章

  • Win32/64-Napolar 木馬界的明星

    摘要:為了了解被這種木馬感染的地區(qū)分布情況,我們分析了相關(guān)檢測(cè)部分的運(yùn)行狀況。受到感染影響最嚴(yán)重的區(qū)域?yàn)橹心厦赖母鐐惐葋單瘍?nèi)瑞拉秘魯墨西哥阿根廷以及亞洲的菲利賓越南和歐洲的波蘭。通信協(xié)議目前發(fā)現(xiàn)的服務(wù)器有。響應(yīng)結(jié)構(gòu)采用以分割的字符串?dāng)?shù)組的形式。 在最近幾個(gè)星期里的AVAST惡意樣本分析名單中,Win32/64:Napolar擁有極高的文件和網(wǎng)絡(luò)屏蔽率。另外,我們發(fā)現(xiàn)了被冠以Solarbot名...

    Amio 評(píng)論0 收藏0
  • 鄧力:如何把深度強(qiáng)化學(xué)習(xí)用于BOT開發(fā)

    摘要:月,谷歌宣布要開發(fā)驅(qū)動(dòng)的,即谷歌助理。由于最近機(jī)器學(xué)習(xí)和有了巨大進(jìn)展,人工智能現(xiàn)在已經(jīng)成為可能。人工智能會(huì)采用迭代和反饋回路來(lái)自我發(fā)展,并趨于完美。這種的獎(jiǎng)勵(lì)函數(shù)用于深度強(qiáng)化學(xué)習(xí)算法先簡(jiǎn)單稱之為情感智能不可能被輕而易舉地量化。 今年三月,微軟CEO Satya Nadella談到現(xiàn)在的行業(yè)趨勢(shì)是更普遍地使用人類語(yǔ)言與計(jì)算設(shè)備交互,他將這一趨勢(shì)稱為對(duì)話即平臺(tái)(conversationas a ...

    cnsworder 評(píng)論0 收藏0
  • [譯] Houdini: 你還沒聽說(shuō)!這可能是 CSS 下一件最令人興奮的大事

    摘要:接下來(lái)我們將會(huì)更具體的說(shuō)明是什麼東西和這傢伙會(huì)怎麼解決這些問題,並且列出目前開發(fā)中一些令人興奮的功能。這個(gè)功能甚至還沒有一個(gè)瀏覽器支援。完整的清單請(qǐng)查閱目前還未被寫入規(guī)範(fàn),意思是這邊提到任何內(nèi)容極有可能會(huì)改變。 譯者:其實(shí)...我想說(shuō)這可能是最令我感到興奮..但又害怕頭痛的功能... 附上原文連結(jié) 你曾經(jīng)想要使用某個(gè) CSS 的新功能,但是最後卻因?yàn)檫@個(gè)功能瀏覽器還未全面支援而放棄了嗎...

    bergwhite 評(píng)論0 收藏0
  • 「PPT 分享」跟著 Laravel'5.1 一起 成為更好的 PHP 開發(fā)

    摘要:本文經(jīng)授權(quán)轉(zhuǎn)自社區(qū)推薦一份很棒的。前往觀看跟著一起成為更好的開發(fā)者 本文經(jīng)授權(quán)轉(zhuǎn)自 PHPHub 社區(qū) 推薦一份很棒的 PPT。 前往觀看:跟著 Laravel5.1 一起 成為更好的 PHP 開發(fā)者.pdf showImg(https://segmentfault.com/img/remote/1460000006781396);

    EsgynChina 評(píng)論0 收藏0
  • DevOps:持續(xù)整合 & 持續(xù)交付(Docker、CircleCI、AWS)

    摘要:原文出處持續(xù)整合持續(xù)交付這篇文章將一步一步介紹如何使用與來(lái)完成持續(xù)整合與持續(xù)交付的開發(fā)流程。前言什麼是持續(xù)整合持續(xù)交付持續(xù)整合持續(xù)交付,簡(jiǎn)稱,具體介紹可以參考山姆鍋對(duì)持續(xù)整合持續(xù)部署持續(xù)交付的定義這篇文章。 原文出處:DevOps:持續(xù)整合&持續(xù)交付(Docker、CircleCI、AWS) showImg(https://segmentfault.com/img/bVlxh...

    Euphoria 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<