国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Facebook Bot 開發(fā)小技巧

fizz / 2646人閱讀

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

流程

準備環(huán)境

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

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

建立 webhook GET API

設(shè)定 Facebook App webhook

實作 webhook POST API 產(chǎn)生對話

準備

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

註冊並登入 ngrok

下載並安裝 ngrok

完成安裝 ngrok 憑證的流程

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

# 開始使用
$ ngrok http [port]

啟動之後畫面如下:

建立 Facebook App 與粉絲專頁

官方教學

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

因為設(shè)定 webhook 網(wǎng)址時,facebook 會發(fā)一個 request 給測試該網(wǎng)址是否正常運作,如果不正確的話,那就沒辦法進入下一階段了。
所以我們需要先將 GET API 建立完成,因為上面給了 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。

上敘動作完成之後,我們就完成前置作業(yè)了。接著下來就是實作與機器人對談的部分

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)
  })
}

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

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

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

相關(guān)文章

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

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

    Amio 評論0 收藏0
  • 鄧力:如何把深度強化學習用于BOT開發(fā)

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

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

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

    bergwhite 評論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 評論0 收藏0
  • DevOps:持續(xù)整合 & 持續(xù)交付(Docker、CircleCI、AWS)

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

    Euphoria 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<