> 웹 프론트엔드 > JS 튜토리얼 > Node 및 Heroku와 함께 Facebook 채팅 봇 구축

Node 및 Heroku와 함께 Facebook 채팅 봇 구축

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-02-17 10:52:14
원래의
809명이 탐색했습니다.
Joan Yin과 Camilo Reyes가 동료 검토 한 Node.js 및 Heroku를 사용하여 Facebook 챗봇을 구축하십시오. itepoint 컨텐츠를 최대한 활용 한 모든 Sitepoint Peer Reviewers에게 감사합니다!

작년 F8 컨퍼런스에서 Facebook은 메신저 플랫폼을 시작하여 개발자가 메신저 또는 Facebook 페이지의 사람들과 대화 할 수있는 봇을 만들 수 있습니다. 로봇을 사용하면 애플리케이션 소유자가 대중으로 확장 될 수있는 개인화되고 대화식 커뮤니케이션을 제공하여 사용자와 더 잘 상호 작용할 수 있습니다. 기업 및 애플리케이션 소유자는 출시 이후 챗봇에 큰 관심을 보였습니다. 발표 3 개월 후, 플랫폼에 11,000 개의 로봇이 구축 된 것으로 추정됩니다. Building a Facebook Chat Bot with Node and Heroku 챗봇은 기업 및 애플리케이션 소유자뿐만 아니라 혜택을받습니다. 이 로봇의 사용자는 다음과 같은 수많은 서비스를 즐길 수 있습니다.

즉시 고객 지원을 받으십시오 예비 항공편 영화 티켓 구매 Netflix 영화 권장 사항 를 받으십시오 일기 예보를 받으십시오 뉴스를 따르십시오 드레싱 조언을 얻으십시오

손에있는 재료를 기반으로 저녁 식사 아이디어를 얻으십시오

엔터테인먼트

챗봇의 현재 관심과 매력은 인공 지능 기술의 개선으로 인해 사용자와의 상호 작용에 점점 더 능숙해질 것입니다.

이 기사에서는 Facebook 페이지를 대신하여 메신저를 통해 사용자와 상호 작용할 수있는 Facebook 챗봇을 만드는 방법을 살펴 봅니다. 우리는 사용자에게 지정한 영화에 대한 다른 세부 사항을 제공 할 수있는 로봇을 만들 것입니다.

    키 포인트

      간단한 규칙 기반 챗봇 구축에는 기본 AI 또는 기계 학습 지식이 필요하지 않지만 NLP를 통합하면 사용자와 자연스럽게 상호 작용할 수있는 로봇의 능력을 향상시킬 수 있습니다. Heroku 플랫폼은 HTTPS를 상자에서 지원하기 때문에 배포를위한 것이며 Facebook Webhook 확인에 필요한 HTTPS를 지원합니다.
    • Heroku의 환경 변수는 API 토큰 및 민감한 데이터를 보호하는 데 필수적이며 이러한 세부 사항은 응용 프로그램의 소스 코드에 하드 코딩되지 않도록합니다.
    • Facebook Messenger 플랫폼을 사용하면 풍부한 사용자 경험을 생성 할 수 있으며, 환영 화면 및 상호 작용을 시작하도록 구성 할 수있는 시작 버튼을 포함한 기능을 포함합니다.
    • MLAB에서 호스팅 된 MongoDB는 사용자 데이터 및 세션 상태를 관리하는 데 사용되므로 챗봇이 진행중인 사용자 상호 작용을 효과적으로 추적하고 응답 할 수 있습니다.
    • 챗봇이 공개되어 대중과 상호 작용하려면 플랫폼 정책 및 보안 표준을 준수하기 위해 Facebook의 검토 프로세스를 통과해야합니다.
    • 로봇을 만들려면 AI를 이해해야합니까?
    • AI의 숙련도는 특히 복잡한 로봇을 구축 할 때 확실히 도움이 될 수 있지만 필요하지 않습니다. 기계 학습을 이해하지 않고도 로봇을 구축 할 수 있습니다.
    • 두 가지 유형의 로봇을 만들 수 있습니다. 하나는 일련의 규칙을 기반으로하고 다른 하나는 머신 러닝을 사용하고 있습니다. 전자는 제공 할 수있는 상호 작용면에서 제한적입니다. 특정 명령에만 응답 할 수 있습니다. 이것이 우리가 구축 할 로봇의 유형입니다.
    • 머신 러닝 로봇을 사용하면 더 나은 사용자 상호 작용을 얻을 수 있습니다. 사용자는 명령을 사용하지 않고 인간의 상호 작용에서와 같이 로봇과 더 자연스럽게 상호 작용할 수 있습니다. 로봇은 또한 사람들과의 대화에서 배우면서 더 똑똑해질 것입니다. 우리는 이러한 유형의 로봇의 건설을 향후 기사에서 저장할 것입니다. 그러나 기계 학습 지식이 필요하지 않습니다. 다행스럽게도 Wit.ai 및 API.AI와 같은 서비스가 있으며 개발자는 기계 학습 (특히 자연어 처리 -NLP)을 응용 프로그램에 통합 할 수 있습니다.
    • 시작 여기에서 완료된 데모 응용 프로그램의 코드를 다운로드 할 수 있습니다.
    • 챗봇이 Facebook 사용자와 통신하려면 메시지를 수신, 처리 및 보낼 수있는 서버를 설정해야합니다. 서버는이를 위해 Facebook 그래프 API를 사용합니다. 그래프 API는 Facebook 플랫폼 데이터에 들어오고 나가는 주요 방법입니다. 서버에는 Facebook 서버가 액세스 할 수있는 엔드 포인트 URL이 있어야하므로 로컬 시스템에 웹 응용 프로그램을 배포하는 것이 작동하지 않으므로 온라인으로 가져와야합니다. 또한 그래프 API의 버전 2.5부터 서비스에 대한 새 구독은 보안 HTTPS 콜백 URL을 사용해야합니다. 이 튜토리얼에서는 모든 기본 appName.herokuapp.com 도메인에 SSL이 활성화되어 있으므로 응용 프로그램을 Heroku에 배포합니다. 우리는 Node.js를 사용하여 웹 응용 프로그램을 구축 할 것입니다.
    먼저, 컴퓨터에 노드가 설치되어 있는지 확인하십시오. 터미널에서 노드 -V를 입력하여이를 확인할 수 있습니다. 설치하면 버전 번호가 출력됩니다. 그런 다음 Heroku 명령 줄 인터페이스 (CLI)를 설치하십시오. 우리는 나중에 앱을 Heroku로 밀기 위해 사용합니다. Heroku -Version을 사용하여 CLI가 설치되어 있는지 확인하십시오.

    프로젝트 디렉토리를 생성하고 다음 명령을 사용하여 package.json 파일을 초기화하십시오.

    프롬프트를 따라 프로젝트 환경 설정을 설정하십시오.

    package.json 파일을 생성 한 후 열기를 열고 스크립트 객체에 시작 속성을 추가하십시오. 이를 통해 Heroku는 응용 프로그램을 시작하기 위해 어떤 명령을 실행 해야하는지 알 수 있습니다. 프로젝트 설정 중에 App.js를 응용 프로그램의 진입 점으로 정의하므로 Node App.js를 시작 값으로 사용합니다. 프로젝트 설정에 따라이 설정을 변경하십시오.
    <code>$ mkdir spbot
    $ cd spbot
    $ npm init</code>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사

    다음 노드 패키지를 설치하십시오.

    프로젝트의 루트 디렉토리에 .gitignore 파일을 작성하고 Node_Modules 폴더를 포함하여 제출되지 않도록합니다.

    <code>{
      "name": "spbot",
      "version": "1.0.0",
      "description": "SPBot Server",
      "main": "app.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node app.js"
      },
      "author": "Joyce Echessa",
      "license": "ISC"
    }</code>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    프로젝트의 루트 디렉토리에서 app.js라는 파일을 만듭니다 (기본 이름이 사용되는 경우 index.js). 다음과 같이 수정하십시오

    첫 번째 get 핸들러는 자체 테스트에 사용됩니다. 응용 프로그램이 성공적으로 배포되었는지 확인합니다. 두 번째 get 핸들러는 Facebook이 응용 프로그램의 검증에 사용하는 엔드 포인트입니다. 코드는 verification_token을 찾고 확인 요청에 전송 된 도전에 응답해야합니다.

    당신은 자신의 토큰을 코드에 붙여 넣을 수 있습니다. 이 유형의 데이터는 환경 변수에서 가장 잘 저장되며, 이는 Heroku에서 프로젝트를 작성한 직후에 할 것입니다.
    <code>$ npm install express request body-parser mongoose --save</code>
    로그인 후 복사
    Heroku에 배포 Facebook 플랫폼이 백엔드 응용 프로그램에 연결하려면 먼저 온라인으로 가져와야합니다. git 리포지토리를 만들고 다음 명령을 사용하여 프로젝트를 제출하십시오.
    <code>node_modules</code>
    로그인 후 복사
    아직 없다면 무료 Heroku 계정에 가입하십시오.

    터미널에서 Heroku에 로그인하고 응용 프로그램을 작성하십시오.

    var express = require("express");
    var request = require("request");
    var bodyParser = require("body-parser");
    
    var app = express();
    app.use(bodyParser.urlencoded({extended: false}));
    app.use(bodyParser.json());
    app.listen((process.env.PORT || 5000));
    
    // 服务器索引页面
    app.get("/", function (req, res) {
      res.send("已部署!");
    });
    
    // Facebook Webhook
    // 用于验证
    app.get("/webhook", function (req, res) {
      if (req.query["hub.verify_token"] === "this_is_my_token") {
        console.log("已验证 webhook");
        res.status(200).send(req.query["hub.challenge"]);
      } else {
        console.error("验证失败。令牌不匹配。");
        res.sendStatus(403);
      }
    });
    로그인 후 복사
    Heroku Open 명령을 실행하면 응용 프로그램을 실행하는 링크가 기본 브라우저에서 열립니다. 모든 것이 잘되면 "배포 된!"텍스트가있는 페이지가 표시됩니다.

    환경 변수를 만듭니다 <🎜 🎜> <,> 진행하기 전에 Heroku에 환경 변수를 만들어 응용 프로그램의 확인 토큰을 저장하겠습니다.

    Heroku 대시 보드를 열고 방금 배포 한 응용 프로그램을 선택하십시오. 애플리케이션의 <🎜 🎜> 설정

    로 이동하여 <🎜 🎜> 구성 변수 표시 <🎜 🎜> 버튼을 클릭하십시오. verification_token을 <🎜 key <🎜 🎜>로 입력하고 토큰을

    value

    로 입력 한 다음 <🎜

    를 클릭하여 <🎜 🎜>를 추가하십시오.

    <<>

    <,,> 코드에서 토큰 문자열 ( "this_is_my_token")을 process.env.verification_token으로 수정하십시오. 변경 사항을 제출하여 헤로쿠로 밀어 넣으십시오.

    Facebook 페이지 및 응용 프로그램을 작성 <🎜 🎜

    서버가 UP가 실행 중이면 이제 Facebook 응용 프로그램과 관련 페이지를 생성합니다. 새 페이지를 만들거나 기존 페이지를 사용할 수 있습니다.

    Facebook 페이지를 만들려면 Facebook에 로그인하고 작성 페이지로 이동하십시오. 주어진 옵션에서 페이지 유형을 선택하십시오. 나는

    엔터테인먼트 <🎜

    를 선택했다.

    <<> 그런 다음 페이지의 범주와 이름을 선택하십시오.

    <<> Building a Facebook Chat Bot with Node and Heroku <<>

    start

    를 클릭 한 후 페이지가 작성되며 응용 프로그램 (설명, 웹 사이트, 프로필 사진, 대상 고객 등)에 대한 자세한 정보를 제공하라는 요청을받습니다. 이제이 설정 단계를 건너 뛸 수 있습니다.

    <<> Building a Facebook Chat Bot with Node and Heroku Facebook 응용 프로그램을 만들려면 새 응용 프로그램 추가 페이지로 이동하여 아래

    기본 설정

    링크를 클릭하여 아래 <🎜 🎜>를 선택하십시오. <<>

    필요한 자세한 정보를 작성하십시오. 카테고리로 <🎜 🎜> 페이지 지향 응용 프로그램

    를 선택하십시오. Building a Facebook Chat Bot with Node and Heroku

    <<>

    <<> 를 클릭 한 후 앱 ID <🎜 를 작성하면 응용 프로그램의 대시 보드가 열립니다.

    <<> Building a Facebook Chat Bot with Node and Heroku

    <🎜 🎜> <🎜 🎜> 제품 설정 <🎜 🎜 🎜

    에서 메신저 <🎜 를 클릭하여 시작하려면 <🎜 🎜>를 시작하십시오. 그런 다음 아래와 같이 메신저 설정 페이지로 이동합니다.

    <<> Building a Facebook Chat Bot with Node and Heroku 메신저 사용자가 보낸 메시지 및 기타 이벤트를 받으려면 응용 프로그램을 사용하면 WebHook 통합이 가능해야합니다. 우리는 다음에 이것을 할 것입니다. WebHook (이전 <🎜

    Live Update

    )을 사용하면 API에 전화하지 않고 실시간으로 업데이트를 실시간으로 추적하고 받으려는 변경 사항을 구독 할 수 있습니다. WebHook 섹션에서 를 클릭하십시오 업데이트 된 콜백 URL (백엔드 응용 프로그램에 정의 된 엔드 포인트 URL, 즉 <🎜 🎜>/webhook)을 입력하고 검증 토큰 (백엔드 응용 프로그램에 사용되는 토큰, 즉 프로세스에 저장된 ENV 값. verification_token) 및 모든 확인란을 선택하십시오. 이들은 응용 프로그램이 구독 할 이벤트를 지정합니다. 우리는 나중에 이러한 사건의 역할에 대해 배울 것입니다.

    <<>

    <<> Building a Facebook Chat Bot with Node and Heroku Webhook을 성공적으로 활성화 한 후에는 Webhook 섹션에서

    가 완성 된 및 가입 이벤트 목록을 볼 수 있습니다. 오류를받는 경우 Webhook Endpoint ( /webhook 끝)에 대한 올바른 URL을 입력했는지 확인하고 여기에 사용 된 토큰이 노드 애플리케이션에 사용하는 것과 동일해야합니다.

    <<>

    <🎜 🎜> <🎜 🎜> 토큰 생성 Building a Facebook Chat Bot with Node and Heroku 섹션에서 드롭 다운 메뉴에서 페이지를 선택하십시오. 인증 후 페이지 액세스 토큰이 생성됩니다.

    <<> Heroku에서 다른 환경 변수를 생성하고 <🎜 🎜 key 를 page_access_token으로 설정하고 생성 된 토큰을 <🎜 value <🎜 🎜>로 가져갑니다. 생성 된 토큰은 Facebook에 표시되는 현재 페이지에 저장되지 않습니다. 페이지에 액세스 할 때마다 페이지 액세스 토큰 필드는 비어 있고 페이지 드롭 다운 메뉴에서 Facebook 페이지를 선택하면 새 토큰이 생성됩니다. 그러나 이전에 만든 모든 토큰은 계속 작동합니다. 따라서 페이지를 닫기 전에 토큰을 복사하십시오.

    Webhook이 특정 페이지에서 이벤트를 받으려면 해당 페이지로 응용 프로그램을 구독해야합니다. webhook

    섹션에서 구독하려는 페이지를 선택하십시오. Building a Facebook Chat Bot with Node and Heroku

    <<>

    환영 화면 <🎜 🎜> 사용자가 봇과 새로운 대화를 시작할 때 가장 먼저 보는 것은 환영 화면입니다. 이 화면에는 이름, 설명, 프로필 사진 및 페이지의 표지 사진이 표시됩니다. 페이지 설명 대신 인사말 텍스트를 설정하여 화면을 사용자 정의 할 수 있습니다. 이를 사용하여 소개 메시지를 설정하여 사용자에게 봇에서 얻을 수있는 것을 알 수 있습니다. 기본적으로 대화를 시작하기 위해 사용자는 첫 번째 메시지를 봇에 보냅니다. 그러나 시작 버튼을 사용하여 봇이 초기 메시지를 보내도록 할 수 있습니다. 버튼은 이벤트를 서버로 보내고 응답 할 수 있습니다. 인사말 텍스트를 설정하려면 페이지를 열고 세트 <🎜 🎜>로 이동하십시오.

    <<> 왼쪽 패널에서 <🎜 🎜> 메시지 <🎜

    를 선택하고 오른쪽 패널에서

    를 열어 메신저 인사 <🎜 🎜>를 표시하십시오. 선호도에 메시지를 설정하십시오. Building a Facebook Chat Bot with Node and Heroku

    <<>

    시작 버튼을 활성화하려면 Token과 함께 다음 문으로 page_access_token 문자열을 교체하고 명령을 터미널에 붙여 넣습니다.

    <code>$ mkdir spbot
    $ cd spbot
    $ npm init</code>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    위의 작업은 Facebook 그래프 API에 요청을 보냅니다. 요청이 성공하면 새 대화의 환영 화면에 시작 버튼이 나타납니다. 사용자는이 버튼을 클릭하고 Postback 수신 된 콜백을 트리거합니다. 그런 다음 봇 이이 Postback에 응답 할 수 있습니다.

    postback은 다른 유형의 구성 요소 (포스트 백 버튼, 시작 버튼, 영구 메뉴 또는 구조화 된 메시지에 의해 트리거 될 수 있습니다. 모든 문자열을 페이로드로 설정할 수 있습니다. 백엔드에서는이 문자열을 사용하여 시작 버튼을 클릭하여 전송 된 포스트 백을 식별합니다. Postback 메시지를 받으려면 응용 프로그램은 Webhook에서 Postback을 구독해야합니다. Messaging_Postbacks 확인란을 선택하여 Webhook을 설정할 때 전에이 작업을 수행했습니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿