Facebook에 봇 연결Connect a bot to Facebook

Facebook Messenger와 Facebook Workplace에 봇을 연결하여 두 플랫폼의 사용자와 소통할 수 있습니다.Your bot can be connected to both Facebook Messenger and Facebook Workplace, so that it can communicate with users on both platforms. 다음 지침에서는 이러한 두 채널에 봇을 연결하는 방법을 보여줍니다.The following instructions show how to connect a bot to these two channels.

참고

Facebook UI는 사용 중인 버전에 따라 약간 다를 수 있습니다.The Facebook UI may appear slightly different depending on which version you are using.

Facebook Messenger에 봇 연결Connect a bot to Facebook Messenger

Facebook Messenger 개발에 대한 자세한 내용은 Messenger 플랫폼 설명서를 참조하세요.To learn more about developing for Facebook Messenger, see the Messenger platform documentation. Facebook의 사전 실행 지침, 빠른 시작설치 가이드를 검토할 수 있습니다.You may wish to review Facebook's pre-launch guidelines, quick start, and setup guide.

Facebook Messenger를 사용하여 통신하도록 봇을 구성하려면 Facebook 페이지에서 Facebook Messenger를 사용하도록 설정한 다음, 봇을 연결합니다.To configure a bot to communicate using Facebook Messenger, enable Facebook Messenger on a Facebook page and then connect the bot.

페이지 ID 복사Copy the Page ID

봇은 Facebook 페이지를 통해 액세스합니다.The bot is accessed through a Facebook Page.

  1. 새 Facebook 페이지를 만들거나 기존 페이지로 이동합니다.Create a new Facebook Page or go to an existing Page.

  2. Facebook 페이지의 About(정보) 페이지를 열고 페이지 ID 를 복사한 후 저장합니다.Open the Facebook Page's About page and then copy and save the Page ID.

Facebook 앱 만들기Create a Facebook app

  1. 브라우저에서 새 Facebook 앱 만들기로 이동합니다.In your browser, navigate to Create a new Facebook App.

  2. 앱의 이름을 입력하고 새 Facebook 앱 ID 만들기를 선택합니다.Enter the name of your app and select Create New Facebook App ID.

    앱 만들기

  3. 표시된 대화 상자에서 이메일 주소를 입력하고 앱 ID 만들기를 선택합니다.In the displayed dialog, enter your email address and select Create App ID.

    앱 ID 만들기

  4. 마법사 단계를 진행합니다.Go through the wizard steps.

  5. 필요한 확인 정보를 입력한 다음, 오른쪽 위에서 빠른 시작 건너뛰기 를 선택합니다.Enter the required check information, then select Skip Quick Start in the upper right.

  6. 표시된 다음 창의 왼쪽 창에서 설정을 확장하고 기본 을 선택합니다.In the left pane of the next displayed window, expand Settings and select Basic.

  7. 오른쪽 창에서 앱 ID앱 비밀 을 복사하고 저장합니다.In the right pane, copy and save the App ID and App Secret.

    앱 ID 및 앱 비밀 복사

  8. 왼쪽 창의 설정 아래에서 고급 을 선택합니다.In the left pane, under Settings, select Advanced.

  9. 오른쪽 창에서 앱 설정에 대한 API 액세스 허용 슬라이더를 로 전환합니다.In the right pane, switch the Allow API Access to App Settings slider to Yes.

    앱 설정에 대한 API 액세스 허용

  10. 오른쪽 아래 페이지에서 변경 내용 저장을 선택합니다.In the page bottom right, select Save Changes.

Messenger 사용Enable Messenger

  1. 왼쪽 창에서 대시보드 를 선택합니다.In the left pane, select Dashboard.

  2. 오른쪽 창에서 Messenger 상자까지 아래로 스크롤하여 설정을 선택합니다.In the right pane, scroll down to the Messenger box and select Set Up. Messenger 항목은 왼쪽 창의 PRODUCTS 섹션 아래에 표시됩니다.The Messenger entry is displayed under the PRODUCTS section in the left pane.

    Messenger 사용

페이지 추가 및 토큰 생성Add pages and generate tokens

  1. 왼쪽 창의 Messenger 항목 아래에서 설정을 선택합니다.In the left pane, under the Messenger entry, select Settings.

  2. 오른쪽 창에서 액세스 토큰까지 아래로 스크롤하고 페이지 추가 또는 제거를 선택합니다.In the right pane, scroll down to Access Tokens and select Add or Remove Pages.

    페이지를 추가하거나 제거하기 위한 인터페이스

  3. 다음 창에 나오는 목록에서 앱에 사용할 페이지를 선택합니다.From the list that comes up in the next window, choose the pages you want to use with the app.

  4. 완료 를 선택합니다.Select Done.

  5. 이 페이지에 대한 토큰을 생성하려면 토큰 생성을 선택합니다.To generate a token for this page, select Generate Token.

웹후크 사용Enable webhooks

메시지 및 기타 이벤트를 봇에서 Facebook Messenger로 보내려면 웹후크 통합을 사용하도록 설정해야 합니다.In order to send messages and other events from your bot to Facebook Messenger, you must enable webhooks integration. Facebook 설정 단계를 보류 상태로 둡니다.Leave the Facebook setting steps pending. 나중에 업데이트합니다.You'll update them later.

  1. 브라우저에서 새 창을 열고, Azure Portal로 이동합니다.In your browser open a new window and navigate to the Azure portal.

  2. 리소스 목록에서 봇 리소스 등록을 선택하고 관련 블레이드에서 채널을 선택합니다.In the Resource list, select on the bot resource registration and in the related blade select Channels.

  3. 오른쪽 창에서 Facebook 아이콘을 선택합니다.In the right pane, select the Facebook icon.

  4. 마법사에서 저장된 이전 단계의 Facebook 정보를 입력합니다.In the wizard enter the Facebook information stored in the previous steps. 정보가 올바르면 마법사 아래쪽에 콜백 URL토큰 확인 이 표시됩니다.If the information is correct, at the bottom of the wizard, you should see the callback URL and the verify token. 복사하여 저장합니다.Copy and store them.

    Facebook Messenger 채널을 구성하는 인터페이스

  5. 저장 을 선택합니다.Select Save.

  6. Facebook 설정으로 돌아가기 구성 프로세스를 완료합니다.Go back to the Facebook settings to finish up the configuration process.

  7. 콜백 URL을 입력하고 Azure Portal 수집한 토큰 값을 확인합니다.Enter the callback URL and verify token values that you collected from the Azure portal.

  8. Webhooks 구성 섹션에서 메시지 _ 배달, 메시지, 메시징 _ 옵션메시징 _ 포스트백 구독을 사용하도록 설정합니다.In the Webhooks configuration section, enable the following subscriptions: message_deliveries, messages, messaging_options, and messaging_postbacks.

검토를 위해 제출Submit for review

Facebook의 기본 앱 설정 페이지에서 개인 정보 취급 방침 URL 및 서비스 약관 URL을 제공해야 합니다.Facebook requires a Privacy Policy URL and Terms of Service URL on its basic app settings page. Code of Conduct(준수 사항) 페이지에는 개인 정보 취급 방침을 만드는 데 도움이 되는 타사 리소스 링크가 포함되어 있습니다.The Code of Conduct page contains third party resource links to help create a privacy policy. Terms of Use(사용 약관) 페이지에는 해당 서비스 약관 문서를 만드는 데 도움이 되는 샘플 약관이 포함되어 있습니다.The Terms of Use page contains sample terms to help create an appropriate Terms of Service document.

봇이 완료되면 Facebook에서는 Messenger에 게시된 앱에 대한 자체 검토 프로세스가 진행됩니다.After the bot is finished, Facebook has its own review process for apps that are published to Messenger. 봇이 Facebook의 플랫폼 정책을준수하는지 테스트합니다.The bot will be tested to ensure it's compliant with Facebook's Platform Policies.

앱을 공개로 설정하고 페이지 게시Make the App public and publish the Page

참고

앱은 게시될 때까지 개발 모드입니다.Until an app is published, it is in Development Mode. 플러그 인 및 API 기능은 관리자, 개발자 및 테스터만 사용할 수 있습니다.Plugin and API functionality will only work for admins, developers, and testers.

검토가 성공적으로 완료되면 앱 검토(App Review) 아래의 App Dashboard(앱 대시보드)에서 앱을 Public(공개)으로 설정합니다.After the review is successful, in the App Dashboard under App Review, set the app to Public. 이 봇과 연결된 Facebook 페이지가 게시되는지 확인합니다.Ensure that the Facebook Page associated with this bot is published. 페이지 설정에 상태가 표시됩니다.Status appears in Pages settings.

Facebook Workplace에 봇 연결Connect a bot to Facebook Workplace

참고

2019년 12월 16일, Workplace by Facebook에서 사용자 지정 통합에 대한 보안 모델을 변경했습니다.On December 16, 2019, Workplace by Facebook changed its security model for custom integrations. Microsoft Bot Framework v4를 사용하여 빌드된 이전 통합은 2020년 2월 28일 이전에 아래 지침에 따라 Bot Framework Facebook 어댑터를 사용하도록 업데이트해야 합니다.Prior integrations built using Microsoft Bot Framework v4 need to be updated to use the Bot Framework Facebook adapters per the instructions below prior to February 28, 2020.

이러한 통합이 완료되어 보안 RFI를 통과한 경우 및 개발자가 2020년 1월 15일 이전에 직접 지원을 통해 연결하여 앱을 계속 사용할 수 있도록 요청하는 경우 Facebook에서는 2020년 12월 31일까지 계속 사용할 수 있는 Workplace 데이터에 대한 제한된 액세스 권한(낮은 민감도 권한)을 통한 통합만 고려합니다.Facebook will only consider integrations with limited access to Workplace data (low sensitivity permissions) eligible for continued use until December 31, 2020 if such integrations have completed and passed Security RFI and if the developer reaches out before January 15, 2020 via Direct Support to request continued use of the app.

Bot Framework 어댑터는 JavaScript/Node.jsC#/.NET 봇에서 사용할 수 있습니다.Bot Framework adapters are available for JavaScript/Node.js and C#/.NET bots.

Facebook Workplace는 직원들이 쉽게 연결하여 협업할 수 있는 비즈니스 중심 버전의 Facebook입니다.Facebook Workplace is a business-oriented version of Facebook, which allows employees to easily connect and collaborate. 라이브 비디오, 뉴스 피드, 그룹, 메신저, 반응, 검색 및 추세 게시물을 포함하고 있으며,It contains live videos, news feeds, groups, messenger, reactions, search, and trending posts. 다음을 지원합니다.It also supports:

  • 분석 및 통합.Analytics and integrations. 회사에서 작업 공간을 기존 IT 시스템과 통합하는 데 사용하는 분석, 통합, Single Sign-On 및 ID 공급자가 포함된 대시보드.A dashboard with analytics, integration, single sign-on, and identity providers that companies use to integrate Workplace with their existing IT systems.
  • 다중 회사 그룹.Multi-company groups. 여러 조직의 직원들이 함께 일하고 협업할 수 있는 공유 공간.Shared spaces in which employees from different organizations can work together and collaborate.

Facebook Workplace에 대해 자세히 알아보려면 Workplace 도움말 센터를 참조하고, Facebook Workplace 개발 지침은 Workplace 개발자 설명서를 참조하세요.See the Workplace Help Center to learn more about Facebook Workplace and Workplace Developer Documentation for guidelines about developing for Facebook Workplace.

봇에서 Facebook Workplace를 사용하려면 Workplace 계정을 만들고 사용자 지정 통합을 통해 봇을 연결해야 합니다.To use Facebook Workplace with your bot, you must create a Workplace account and a custom integration to connect the bot.

Workplace Premium 계정 만들기Create a Workplace Premium account

  1. 회사를 대신하여 Workplace에 신청서를 제출합니다.Submit an application to workplace on behalf of your company.
  2. 신청서가 승인되면 참가 초대 이메일을 받게 됩니다.Once your application has been approved, you will receive an email inviting you to join. 응답에 다소 시간이 걸릴 수 있습니다.The response may take a while.
  3. 전자 메일 초대에서 시작을 선택합니다.From the e-mail invitation, select Get Started.
  4. 프로필 정보를 입력합니다.Enter your profile information.

    자신을 시스템 관리자로 설정합니다.Set yourself as the system administrator. 시스템 관리자만이 사용자 지정 통합을 수행할 수 있습니다.Remember that only system administrators can create custom integrations.

  5. 미리 보기 프로필을 선택하고 정보가 올바른지 확인합니다.Select Preview Profile and verify the information is correct.
  6. 평가판 에 액세스합니다.Access Free Trial.
  7. 암호를 만듭니다.Create a password.
  8. 동료 초대를 선택하여 직원을 로그인하도록 초대합니다.Select Invite Coworkers to invite employees to sign-in. 초대를 받은 직원은 로그인하는 즉시 구성원이 됩니다.The employees you invited will become members as soon as they sign. 이러한 단계에서 설명한 것과 비슷한 로그인 프로세스를 거치게 됩니다.They will go through a similar sign-in process as described in these steps.

사용자 지정 통합 만들기Create a custom integration

아래에 설명된 단계에 따라 Workplace를 사용자 지정 통합합니다.Create a custom integration for your Workplace following the steps described below. 사용자 지정 통합을 만들 때 정의 된 사용 권한 및 형식 페이지 Bot (작업 공간 커뮤니티 내 에서만 표시 됨)가 있는 앱이 만들어집니다.When you create a custom integration, an app with defined permissions and a page of type Bot (visible only within your Workplace community) are created.

  1. 관리 패널 에서 통합 탭을 엽니다.In the Admin Panel, open the Integrations tab.

  2. 사용자 지정 앱 만들기 를 선택 합니다.Select Create your own custom App.

    Workplace 통합

  3. 앱의 표시 이름 및 프로필 사진을 선택합니다.Choose a display name and a profile picture for the app. 이러한 정보는 형식의 페이지와 공유 됩니다 Bot .Such information will be shared with the page of type Bot.

  4. 앱 설정에 대한 API 액세스 허용 을 "예"로 설정합니다.Set the Allow API Access to App Settings to "Yes".

  5. 사용자에게 표시되는 앱 ID, 앱 비밀 및 앱 토큰을 복사하고 안전하게 저장합니다.Copy and safely store the App ID, App Secret and App Token that's shown to you.

    Workplace 키

  6. 이제 사용자 지정 통합 생성이 완료되었습니다.Now you have finished creating a custom integration. Bot아래와 같이 회사 커뮤니티에서 형식의 페이지를 찾을 수 있습니다.You can find the page of type Bot in your Workplace community, as shown below.

    Workplace 페이지

Facebook 어댑터를 사용하여 봇 코드 업데이트Update your bot code with Facebook adapter

Workplace by Facebook과 통신할 어댑터를 포함하도록 봇의 소스 코드를 업데이트해야 합니다.Your bot's source code needs to be updated to include an adapter to communicate with Workplace by Facebook. 어댑터는 JavaScript/Node.jsC#/.NET 봇에서 사용할 수 있습니다.Adapters are available for JavaScript/Node.js and C#/.NET bots.

Facebook 자격 증명 제공Provide Facebook credentials

파일에서 봇의 appsettings.js 하려면 이전에 Facebook 작업 영역에서 복사한 facebook 앱 ID, Facebook 앱 암호페이지 액세스 토큰 값을 추가 합니다.To your bot's appsettings.json file, add the Facebook App ID, Facebook App Secret and Page Access Token values that you copied from Facebook Workplace previously. 기존 페이지 ID 대신 해당 정보 페이지에서 통합 이름 다음에 있는 숫자를 사용 합니다.Instead of a traditional page ID, use the numbers following the integrations name on its About page. 다음 지침에 따라 JavaScript/Node.js 또는 C#/.NET에서 봇 소스 코드를 업데이트합니다.Follow these instructions to update your bot source code in JavaScript/Node.js or C#/.NET.

검토를 위해 작업 공간 앱 제출Submit Workplace app for review

자세한 내용은 Facebook Messenger에 봇 연결 섹션과 Workplace 개발자 설명서를 참조하세요.Please refer to the Connect a bot to Facebook Messenger section and Workplace Developer Documentation for details.

작업 공간 앱을 공개로 설정 하 고 페이지 게시Make the Workplace app public and publish the Page

자세한 내용은 Facebook Messenger에 봇 연결 섹션을 참조하세요.Please refer to the Connect a bot to Facebook Messenger section for details.

API 버전 설정Setting the API version

Facebook으로부터 Graph API 특정 버전의 사용 중단에 대한 알림을 받으면 Facebook 개발자 페이지로 이동합니다.If you receive a notification from Facebook about deprecation of a certain version of the Graph API, go to Facebook developers page. Bot의 앱 설정 으로 이동 하 고 설정 > 고급 > 업그레이드 API 버전 으로 이동한 다음, 버전 4.0에 대 한 모든 호출 업그레이드 를 전환 합니다.Navigate to your bot's App Settings and go to Settings > Advanced > Upgrade API version, then switch Upgrade All Calls to version 4.0.

Facebook 어댑터를 사용하여 Facebook에 봇 연결Connect a bot to Facebook using the Facebook adapter

Bot Framework Facebook 어댑터를 사용하여 봇을 Facebook Workplace와 연결합니다.Use the Bot Framework Facebook adapter to connect your bot with Facebook Workplace. Facebook Messenger에 연결 하려면 Facebook 채널 또는 Facebook 어댑터를 사용할 수 있습니다.To connect to Facebook Messenger, you can use the Facebook channel or the Facebook adapter. Facebook 어댑터는 JavaScript/Node.jsC#/.NET 봇에서 사용할 수 있습니다.Facebook adapters are available for JavaScript/Node.js and C#/.NET bots.

이 문서에서는 어댑터를 사용하여 봇을 Facebook에 연결하는 방법에 대해 알아봅니다.In this article you will learn how to connect a bot to Facebook using the adapter. 이 문서에서는 Echo 봇 샘플을 수정 하 여 Facebook에 연결 하는 과정을 안내 합니다.This article will walk you through modifying the Echo bot sample to connect it to Facebook.

아래 지침에서는 Facebook 어댑터의 C# 구현을 다루고 있습니다.The instructions below cover the C# implementation of the Facebook adapter. BotKit 라이브러리의 일부인 JavaScript 어댑터를 사용하는 방법에 대한 지침은 BotKit Facebook 설명서를 참조하세요.For instructions on using the JavaScript adapter, part of the BotKit libraries, see the BotKit Facebook documentation.

사전 요구 사항Prerequisites

Facebook 앱 만들기, 페이지 지정 및 자격 증명 수집Create a Facebook app, page and gather credentials

  1. https://developers.facebook.com에 로그인합니다.Log into https://developers.facebook.com. 주 메뉴에서 내 앱 > 앱 만들기 를 선택 합니다.In the main menu, select My Apps > Create App.

    앱 만들기

  2. 표시 되는 대화 상자에서 새 앱에 대 한 표시 이름을 입력 하 고 앱 ID 만들기 를 선택 합니다.In the dialog that appears, enter a display name for your new app and then select Create App ID.

    앱 이름 정의

Messenger 설정 및 Facebook 페이지 연결Set up Messenger and associate a Facebook page

  1. 앱이 만들어지면 설정하는 데 사용할 수 있는 제품 목록이 표시됩니다.Once your app has been created, you will see a list of products available to set up. Messenger 제품 옆의 설정 을 선택 합니다.Select Set Up next to the Messenger product.

  2. 이제 새 앱을 Facebook 페이지와 연결 하 여 — 페이지를 만들어야 합니다. 사용 하려는 기존 페이지가 없으면 액세스 토큰 섹션에서 새 페이지 만들기 를 선택 합니다.You now need to associate your new app with a Facebook page—to create a page if you do not have an existing page you want to use, select Create New Page in the Access Tokens section. 페이지 추가/제거 를 선택 하 고 앱과 연결 하려는 페이지를 선택한 후 다음 을 선택 합니다.Select Add or Remove Pages, choose the page you want to associated with your app, and select Next. 메신저에서 페이지 대화 관리 및 액세스 설정을 사용 하도록 설정 된 채로 두고 완료 를 선택 합니다.Leave the Manage and access Page conversations on Messenger setting enabled and select Done.

Messenger 설정

  1. 페이지를 연결한 후에는 토큰 생성 을 선택 하 여 페이지 액세스 토큰을 생성 합니다.Once you have associated your page, select Generate Token to generate a page access token. 이후 단계에서 봇 애플리케이션을 구성할 때 필요하므로 이 토큰을 적어 두세요.Make a note of this token as you will need it in a later step when configuring your bot application.

앱 비밀 가져오기Obtain your app secret

  1. 왼쪽 메뉴에서 설정 을 선택한 다음 기본 을 선택 하 여 앱에 대 한 기본 설정 페이지로 이동 합니다.In the left hand menu, select Settings and then select Basic to navigate to the basic settings page for your app.

  2. 기본 설정 페이지에서 앱 암호 옆에 표시 를 선택 합니다.On the basic settings page, select Show next to your App Secret. 이후 단계에서 봇 애플리케이션을 구성할 때 필요하므로 이 비밀을 적어 두세요.Make a note of this secret as you will need it in a later step when configuring your bot application.

봇에서 Facebook 어댑터 연결Wiring up the Facebook adapter in your bot

이제 Facebook 앱, 페이지 및 자격 증명이 있으므로 봇 애플리케이션을 구성해야 합니다.Now that you have your Facebook app, page and credentials, you need to configure your bot application.

Facebook 어댑터 NuGet 패키지 설치Install the Facebook adapter NuGet package

Microsoft . n. n a m. n a m a. n a m a NuGet 패키지를 추가 합니다.Add the Microsoft.Bot.Builder.Adapters.Facebook NuGet package. NuGet을 사용하는 방법에 대한 자세한 내용은 Visual Studio에서 패키지 설치 및 관리를 참조하세요.For more information on using NuGet, see Install and manage packages in Visual Studio.

Facebook 어댑터 클래스 만들기Create a Facebook adapter class

클래스에서 상속 되는 새 클래스를 만듭니다 FacebookAdapter .Create a new class that inherits from the FacebookAdapter class. 이 클래스는 Facebook 채널의 어댑터 역할을 하며, 오류 처리 기능 ( BotFrameworkAdapterWithErrorHandler 샘플에 이미 있는 클래스와 유사)을 포함 하 여 Azure Bot Service의 다른 요청을 처리 하는 데 사용 됩니다.This class will act as our adapter for the Facebook channel and include error handling capabilities (similar to the BotFrameworkAdapterWithErrorHandler class already in the sample, used for handling other requests from Azure Bot Service).

public class FacebookAdapterWithErrorHandler : FacebookAdapter
{
    public FacebookAdapterWithErrorHandler(IConfiguration configuration, ILogger<BotFrameworkHttpAdapter> logger)
            : base(configuration, logger)
        {
            OnTurnError = async (turnContext, exception) =>
            {
                // Log any leaked exception from the application.
                logger.LogError(exception, $"[OnTurnError] unhandled error : {exception.Message}");

                // Send a message to the user
                await turnContext.SendActivityAsync("The bot encountered an error or bug.");
                await turnContext.SendActivityAsync("To continue to run this bot, please fix the bot source code.");

                // Send a trace activity, which will be displayed in the Bot Framework Emulator
                await turnContext.TraceActivityAsync("OnTurnError Trace", exception.Message, "https://www.botframework.com/schemas/error", "TurnError");
            };
        }
}

Facebook 요청을 처리하는 새 컨트롤러 만들기Create a new controller for handling Facebook requests

api/facebook api/messages Azure Bot Service 채널의 요청에 사용 되는 기본 끝점이 아닌 새 끝점에서 Facebook의 요청을 처리 하는 새 컨트롤러를 만듭니다.Create a new controller which will handle requests from Facebook, on a new api/facebook endpoint instead of the default api/messages endpoint used for requests from Azure Bot Service channels. 봇에 추가 엔드포인트를 추가하면 동일한 봇을 사용하여 Bot Service 채널 및 Facebook의 요청을 모두 수락할 수 있습니다.By adding an additional endpoint to your bot, you can accept requests from Bot Service channels, as well as from Facebook, using the same bot.

[Route("api/facebook")]
[ApiController]
public class FacebookController : ControllerBase
{
    private readonly FacebookAdapter _adapter;
    private readonly IBot _bot;

    public FacebookController(FacebookAdapter adapter, IBot bot)
    {
        _adapter = adapter;
        _bot = bot;
    }

    [HttpPost]
    [HttpGet]
    public async Task PostAsync()
    {
        // Delegate the processing of the HTTP POST to the adapter.
        // The adapter will invoke the bot.
        await _adapter.ProcessAsync(Request, Response, _bot);
    }
}

봇 startup.cs에 Facebook 어댑터 삽입Inject the Facebook adapter in your bot startup.cs

ConfigureServices 시작 .cs 파일 내의 메서드에 다음 줄을 추가 합니다.Add the following line to the ConfigureServices method within your startup.cs file. 그러면 Facebook 어댑터가 등록되어 새 컨트롤러 클래스에서 사용할 수 있습니다.This will register your Facebook adapter and make it available for your new controller class. 이전 단계에서 추가한 구성 설정은 어댑터에서 자동으로 사용됩니다.The configuration settings you added in the previous step will be automatically used by the adapter.

services.AddSingleton<FacebookAdapter, FacebookAdapterWithErrorHandler>();

추가 된 ConfigureServices 메서드는 다음과 같습니다.Once added, your ConfigureServices method should look like this.

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    // Create the default Bot Framework adapter (used for Azure Bot Service channels and Emulator).
    services.AddSingleton<IBotFrameworkHttpAdapter, BotFrameworkAdapterWithErrorHandler>();

    // Create the Facebook adapter
    services.AddSingleton<FacebookAdapter, FacebookAdapterWithErrorHandler>();

    // Create the bot as a transient. In this case the ASP controller is expecting an IBot.
    services.AddTransient<IBot, EchoBot>();
}

봇에 대한 URL 가져오기Obtain a URL for your bot

이제 봇 프로젝트에서 어댑터를 연결했으므로 봇에서 메시지를 받을 수 있도록 애플리케이션에 대한 올바른 엔드포인트를 Facebook에 제공해야 합니다.Now that you have wired up the adapter in your bot project, you need to provide to Facebook the correct endpoint for your application, so that your bot will receive messages. 이 URL은 봇 애플리케이션의 구성을 완료하는 데에도 필요합니다.You also need this URL to complete configuration of your bot application.

이 단계를 완료하려면 봇을 Azure에 배포하고, 배포된 봇의 URL을 적어 두세요.To complete this step, deploy your bot to Azure and make a note of the URL of your deployed bot.

참고

Azure에 봇을 배포할 준비가 되지 않았거나 Facebook 어댑터를 사용할 때 봇을 디버그 하려는 경우 ngrok (이전에는 Bot Framework 에뮬레이터를 사용 하 여 이미 설치 되어 있는 경우)와 같은 도구를 사용 하 여 로컬로 실행 되는 bot로 터널링 하 고이에 대해 공개적으로 액세스할 수 있는 URL을 제공할 수 있습니다.If you are not ready to deploy your bot to Azure, or wish to debug your bot when using the Facebook adapter, you can use a tool such as ngrok (which you will likely already have installed if you have used the Bot Framework Emulator previously) to tunnel through to your bot running locally and provide you with a publicly accessible URL for this.

ngrok 터널을 만들고 봇에 대한 URL을 가져오려면 터미널 창에서 다음 명령을 사용합니다. 이 경우 로컬 봇이 3978 포트에서 실행된다고 가정하며, 해당 봇이 이 포트에서 실행되지 않는 경우 명령에서 포트 번호를 변경하세요.If you wish create an ngrok tunnel and obtain a URL to your bot, use the following command in a terminal window (this assumes your local bot is running on port 3978, alter the port numbers in the command if your bot is not).

ngrok.exe http 3978 -host-header="localhost:3978"

봇의 구성 파일에 Facebook 앱 설정 추가Add Facebook app settings to your bot's configuration file

Bot 프로젝트의 파일 에 대 한appsettings.js 에 아래에 표시 된 설정을 추가 합니다.Add the settings shown below to your appsettings.json file in your bot project. Facebook 앱을 만들고 구성할 때 수집한 값을 사용하여 FacebookAppSecretFacebookAccessToken 을 채웁니다.You populate FacebookAppSecret and FacebookAccessToken using the values you gathered when creating and configuring your Facebook App. FacebookVerifyToken 은 사용자가 만드는 임의의 문자열이 며, Facebook에서 호출 될 때 봇의 끝점이 인증 되도록 하는 데 사용 됩니다.FacebookVerifyToken should be a random string that you create and will be used to ensure your bot's endpoint is authentic when called by Facebook.

"FacebookVerifyToken": "",
"FacebookAppSecret": "",
"FacebookAccessToken": ""

위의 설정이 채워지면 봇을 다시 배포해야 합니다(또는 ngrok를 사용하여 로컬로 실행하는 경우 다시 시작).Once you have populated the settings above, you should redeploy (or restart if running locally with ngrok) your bot.

Facebook 앱의 구성 완료Complete configuration of your Facebook app

마지막 단계는 봇에서 메시지를 받을 수 있도록 새 Facebook 앱의 Messenger 엔드포인트를 구성하는 것입니다.The final step is to configure your new Facebook app's Messenger endpoint, to ensure your bot receives messages.

  1. 앱에 대 한 대시보드 내에서 왼쪽 메뉴에 있는 Messenger 를 선택 하 고 설정 을 선택 합니다.Within the dashboard for your app, select Messenger in the left hand menu and then select Settings.

  2. 웹 후크 섹션에서 콜백 URL 추가 를 선택 합니다.In the Webhooks section select Add Callback URL.

  3. Callback URL(콜백 URL) 텍스트 상자에서 새로 만든 컨트롤러에서 지정한 api/facebook 엔드포인트가 포함된 봇의 URL을 입력합니다.In the Callback URL text box enter your bot's URL, plus the api/facebook endpoint you specified in your newly created controller. https://yourboturl.com/api/facebook)을 입력합니다.For example, https://yourboturl.com/api/facebook. 토큰 확인 텍스트 상자에 이전에 작성 하 여 파일의 bot 응용 프로그램 appsettings.js 에서 사용한 확인 토큰을 입력 합니다.In the Verify Token text box enter the verify token you created earlier and used in your bot application's appsettings.json file.

    콜백 URL 편집

  4. 확인 및 저장을 선택 합니다.Select Verify and Save. Facebook에서 애플리케이션의 엔드포인트에 대한 요청을 수행하고 Verify Token 을 사용하여 이를 확인하므로 봇이 실행되고 있는지 확인합니다.Ensure you bot is running, as Facebook will make a request to your application's endpoint and verify it using your Verify Token.

  5. 콜백 URL이 확인 되 면 현재 표시 된 구독 추가 를 선택 합니다.Once your callback URL has been verified, select Add Subscriptions that is now shown. 팝업 창에서 다음 구독을 선택 하 고 저장 을 선택 합니다.In the pop-up window, choose the following subscriptions and select Save.

    • messagesmessages
    • messaging_postbacksmessaging_postbacks
    • messaging_optinsmessaging_optins
    • messaging_deliveriesmessaging_deliveries

    웹후크 구독

Facebook에서 어댑터를 사용하여 봇 테스트Test your bot with adapter in Facebook

이제 새 Facebook 앱과 연결된 Facebook 페이지를 통해 메시지를 보내 봇이 Facebook에 올바르게 연결되었는지 테스트할 수 있습니다.You can now test whether your bot is connected to Facebook correctly by sending a message via the Facebook Page you associated with your new Facebook app.

  1. Facebook 페이지로 이동합니다.Navigate to your Facebook Page.

  2. 단추 추가를 선택합니다.Select Add a Button.

    단추 추가

  3. 연락처 및 메시지 보내기를 선택한 후 다음을 선택합니다.Choose Contact You and Send Message, then select Next.

    표시할 단추 선택

  4. 사람을 보내기 위해 이 단추를 어디에 보내시겠습니까?라는 메시지가 표시되면 Messenger를 선택한 다음, 마침을 선택합니다.When asked Where would you like this button to send people to? choose Messenger, then select Finish.

    단추가 사람을 보내는 위치 선택

  5. 이제 Facebook 페이지에 표시된 새 메시지 보내기 단추를 마우스로 가리키고 팝업 메뉴에서 테스트 단추를 선택합니다.Hover over the new Send Message button that is now shown on your Facebook Page and select Test Button from the pop-up menu. 그러면 봇 메시징을 테스트하는 데 사용할 수 있는 Facebook Messenger를 통해 앱에서 새 대화가 시작됩니다.This will start a new conversation with your app via Facebook Messenger, which you can use to test messaging your bot. 봇에서 메시지를 받으면 메시지를 다시 보내 메시지의 텍스트를 에코합니다.Once the message is received by your bot, it will send a message back to you, echoing the text from your message.

위의 단계에서 설명한 것과 동일한 값으로 파일의appsettings.js채워 Facebook 어댑터용 샘플 봇을 사용하여 이 기능을 테스트할 수도 있습니다. You can also test this feature using the sample bot for the Facebook adapter by populating the appsettings.json file with the same values described in the steps above.

참고 항목See also

  • 샘플 코드.Sample code. Facebook-events 샘플 봇을 사용하여 Facebook Messenger와의 봇 통신을 살펴봅니다.Use the Facebook-events sample bot to explore the bot communication with Facebook Messenger.