Todo list Universal app

Similar documents
Portal_9iAS.ppt [읽기 전용]

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

DocsPin_Korean.pages

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Week13

클라우드컴퓨팅확산에따른국내경제시사점 클라우드컴퓨팅확산에따른국내경제시사점 * 1) IT,,,, Salesforce.com SaaS (, ), PaaS ( ), IaaS (, IT ), IT, SW ICT, ICT IT ICT,, ICT, *, (TEL)

TTA Journal No.157_서체변경.indd

Facebook API

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Windows Live Hotmail Custom Domains Korea

chapter4

오늘날의 기업들은 24시간 365일 멈추지 않고 돌아간다. 그리고 이러한 기업들을 위해서 업무와 관련 된 중요한 문서들은 언제 어디서라도 항상 접근하여 활용이 가능해야 한다. 끊임없이 변화하는 기업들 의 경쟁 속에서 기업내의 중요 문서의 효율적인 관리와 활용 방안은 이

KT AI MAKERS KIT 사용설명서 (Node JS 편).indd

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

슬라이드 1

미래 서비스를 위한 스마트 클라우드 모델 수동적으로 웹에 접속을 해야만 요구에 맞는 서비스를 받을 수 있었다. 수동적인 아닌 사용자의 상황에 필요한 정보를 지능적으로 파악 하여 그에 맞는 적합한 서비스 를 제공할 수 새로운 연구 개발이 요구 되고 있다. 이를 위하여,

스마트월드캠퍼스 교육교제

Microsoft PowerPoint - Windows CE Programming_2008 [호환 모드]

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

Microsoft PowerPoint - XP Style

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

KYO_SCCD.PDF

4S 1차년도 평가 발표자료

슬라이드 1

WeToken白皮书

Polly_with_Serverless_HOL_hyouk

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx


<4D F736F F D205B4354BDC9C3FEB8AEC6F7C6AE5D3131C8A35FC5ACB6F3BFECB5E520C4C4C7BBC6C320B1E2BCFA20B5BFC7E2>

슬라이드 1

Dialog Box 실행파일을 Web에 포함시키는 방법

Microsoft Word - 조병호

Interstage5 SOAP서비스 설정 가이드

DIY 챗봇 - LangCon

Analyst Briefing

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

Intro to Servlet, EJB, JSP, WS

DE1-SoC Board

CD-RW_Advanced.PDF

04서종철fig.6(121~131)ok

Voice Portal using Oracle 9i AS Wireless

Social Network

¨ìÃÊÁ¡2

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

about_by5

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack

08SW

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi

Macaron Cooker Manual 1.0.key

제 출 문 환경부장관 귀하 본 보고서를 습마트기기 활용 환경지킴이 및 교육 통합 서비스 개 발 과제의 최종보고서로 제출합니다. 주관연구기관 : 주관연구기관장 : 2015년 10월 주식회사 덕키즈 김 형 준 (주관)연구책임자 : 문종욱 (주관)참여연구원 : 김형준, 문병

(untitled)

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

0125_ 워크샵 발표자료_완성.key

강창훈

±èÇö¿í Ãâ·Â

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

Egretia_White_Paper_KR_V1.1.pages

OMA Bcast Service Guide ATSC 3.0 (S33-2) T-UHDTV 송수신정합 Part.1 Mobile Broadcast (Open Mobile Alliance) 기반 Data Model ATSC 3.0 을위한확장 - icon, Channel No.

슬라이드 1

슬라이드 1

untitled

!K_InDesginCS_NFH

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

EMBARCADERO TECHNOLOGIES (Humphery Kim) RAD Studio : h=p://tech.devgear.co.kr/ : h=p://blog.hjf.pe.kr/ Facebook : h=p://d.com/hjfactory :

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

untitled

Assign an IP Address and Access the Video Stream - Installation Guide

디지털포렌식학회 논문양식

歯MW-1000AP_Manual_Kor_HJS.PDF


( )부록

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

매력적인 맥/iOS 개발 환경 그림 A-1 변경 사항 확인창 Validate Setting... 항목을 고르면 된다. 프로젝트 편집기를 선택했을 때 화면 아 래쪽에 있는 동일한 Validate Settings... 버튼을 클릭해도 된다. 이슈 내비게이터 목록에서 변경할

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer

서현수

PowerPoint Template

160322_ADOP 상품 소개서_1.0

UNIST_교원 홈페이지 관리자_Manual_V1.0

ODS-FM1

PCServerMgmt7

Something that can be seen, touched or otherwise sensed

09오충원(613~623)

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

What is ScienceDirect? ScienceDirect는 세계 최대의 온라인 저널 원문 데이터베이스로 엘스비어에서 발행하는 약,00여 종의 Peer-reviewed 저널과,000여권 이상의 도서를 수록하고 있습니다. Peer review Subject 수록된

텀블러514

Security Overview

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

14 경영관리연구 제6권 제1호 ( ) Ⅰ. 서론 2013년 1월 11일 미국의 유명한 경영전문 월간지 패스트 컴퍼니 가 2013년 글로벌 혁신 기업 50 을 발표했다. 가장 눈에 띄는 것은 2년 연속 혁신기업 1위를 차지했던 애플의 추락 이었다. 음성 인식

<31325FB1E8B0E6BCBA2E687770>

PowerPoint 프레젠테이션

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Tekla Structures 설치

Copyright 2009 Hewlett-Packard Development Company, L.P. Intel 은 미국 및 다른 국가에서 Intel Corporation 의 상표입니다. Microsoft 및 Windows 는 Microsoft Corporation 의

Modern Javascript

Transcription:

Microsoft MVP MunChan Park kaki104@daum.net Windows Platform Development MVP www.facebook.com/groups/w10app 유튜브채널 Using OneDrive in a Bot Framework

환경및준비 가능하면모두영문버전사용을추천 Windows 10 version 1709 (16299.x) 가능하면최신버전으로.. Visual Studio 2017 version 15.6.x 가능하면최신버전으로.. Microsoft Bot Framework V3.0 Microsoft Azure Account Windows Software Development Kit (Windows SDK) 10.0.16299

참고자료 Bot Service Documentation ngrok (for local test) Microsoft Graph Microsoft Application Registration Portal Add audio streaming to your skill csharp-bot-onedrive Botauth OneDrive and SharePoint in Microsoft Graph Rest APIs Use query parameters to customize response

Microsoft Graph Microsoft Graph API 를사용하여 Microsoft 클라우드에있는여러서비스를사용할수있습니다. Microsoft Graph 를이용해서접근할수있는서비스 Files(OneDrive), Calendar, Messages, People, Devices Microsoft Graph 를이용해서무엇을할수있나요? 다음모임을보고참석자에게직책과함께일하는사람, 작업중인최신문서및프로젝트에대한정보를제공하여준비를도와줍니다. 캘린더를스캔하고다음팀회의에가장적합한시간을제안합니다. OneDrive 의 Excel 파일에서최신판매계획차트를가져와서휴대전화에서실시간으로예측을업데이트할수있습니다. 캘린더의변경사항을구독하고회의에너무많은시간을할애하면알림을보내며, 참석자의관련성에따라놓치거나위임할수있는알림을제공합니다. 휴대전화에서개인정보및직장정보를정리할수있습니다. 예를들어개인 OneDrive 로이동해야하는사진과비즈니스용 OneDrive 로이동해야하는사업영수증을분류하면됩니다.

Graph Explorer

시스템구성 사용자 Azure Bot Service Microsoft https://login.microsoftonline.com/common OneDriveBot Magic Number Page Microsoft Graph https://graph.microsoft.com/v1.0/me/drive

BotAuth Bot 에서인증을할수있게지원하는누겟패키지 Authentication middleware for the botframework Csharp, Node Include prerelease 체크! Browse 탭에서 botauth 입력 BotAuth, BotAuth.AADv2 설치

Bot 개발 실습

Web.config appsettings <add key="botid" value="kakionedrivebot" /> <add key="microsoftappid" value= " /> <add key="microsoftapppassword" value= " /> <!-- AAD settings...register your own at https://apps.dev.microsoft.com --> <add key="aad:clientid" value= AppId 와동일 " /> <add key="aad:clientsecret" value= AppPassword 와동일 " /> <add key="aad:authority" value="https://login.microsoftonline.com/common" /> <add key="aad:callback" value="http://localhost:3979/callback" /> 콜백주소입력은 https://apps.dev.microsoft.com 에서입력한값을사용

MicrosoftAppId, ClientId MicrosoftAppPassword, ClientSecret Callback Add 클릭

OneDriveBot 작업순서 1 봇생성 BotAuth 설치및 https://github.com/microsoftdx/bot auth 셈플다운로드 Web.config 수정 RootDialog.cs 수정 셈플에서 magic.htm 파일복사후프로젝트에추가 디버그실행 Bot Framework Emulator 로테스트 -> Settings -> Service -> ngrok 경로입력 Publish

OneDriveBot 작업순서 2 Azure Bot Service Bot Channel 생성 (https://youtu.be/quqpjmgc01q 참고 ) 생성된 Channel 로이동 Settings Microsoft App ID -> Manage 클릭 Microsoft Application Registration Portal Bot 과연결된 application 페이지로이동 Application Secrets Generate New Password 클릭 -> 복사 Platforms Add Platform -> Web Redirect URLs https://localhost:3979/callback ( 로컬테스트시 ) https://bot 주소.azurewebsites.net/Callback ( 운영시 ) Microsoft Graph Permissions Application Permissions -> Add -> Files.Read 선택

OneDriveBot 작업순서 3 Web.config Application Id, Application Secrets 붙여넣기 Callback 주소입력 https://localhost:3979/callback ( 로컬테스트시, 포트번호주의 ) https://bot.azurewebsites.net/callback ( 운영시 ) Publish Bot Framework Emulator 로테스트시 AppId, AppPassword 입력하고테스트 주의! 인증과정중오류가발생하는대부분의이유는콜백주소문제가많습니다. 주소는철저히확인부탁드립니다.

봇인증핵심코드

RootDialog.cs private readonly AuthenticationOptions _authenticationoptions = new AuthenticationOptions() { Authority = ConfigurationManager.AppSettings["aad:Authority"], ClientId = ConfigurationManager.AppSettings["aad:ClientId"], ClientSecret = ConfigurationManager.AppSettings["aad:ClientSecret"], Scopes = new[] { "Files.Read" }, RedirectUrl = ConfigurationManager.AppSettings["aad:Callback"], MagicNumberView = "/magic.html#{0}" }; var query = "https://graph.microsoft.com/v1.0/me/drive/special/music/children?$top=5"; // Save the query so we can run it after authenticating context.conversationdata.setvalue("graphquery", query); // Forward the dialog to the AuthDialog to sign the user in and get an access token for calling the Microsoft Graph and then execute the specific action await context.forward(new AuthDialog(new MSALAuthProvider(), _authenticationoptions), GetOneDriveMusicFiles, activity, CancellationToken.None);

RootDialog.cs private async Task GetOneDriveMusicFiles(IDialogContext context, IAwaitable<AuthResult> result) { // Getting the token from the Microsoft Graph var tokeninfo = await result; // Get the Documents from the OneDrive of the Signed-In User var json = await new HttpClient().GetWithAuthAsync(tokenInfo.AccessToken, context.conversationdata.getvalue<string>("graphquery")); var root = JsonConvert.DeserializeObject<Rootobject>(json.ToString()); var reply = ((Activity) context.activity).createreply(); foreach (var music in root.value) { var audiocard = new AudioCard { Title = music.name, Subtitle = $"Artist: {music.audio.artist}, Genre: {music.audio.genre}", Media = new List<MediaUrl> { new MediaUrl(music.microsoftgraphdownloadUrl) }, Buttons = new List<CardAction> { new CardAction(ActionTypes.OpenUrl, "Open File", value: music.weburl) } }; if (reply.attachments.any() == false) audiocard.autostart = true; reply.attachments.add(audiocard.toattachment()); } reply.attachmentlayout = AttachmentLayoutTypes.Carousel; } var client = new ConnectorClient(new Uri(context.Activity.ServiceUrl)); await client.conversations.replytoactivityasync(reply);

최종소스 https://github.com/kaki104/bot

Mobile-First, Cloud-First