블로그 이미지
정홍주
Azure에 대한 내용뿐만 아니라 새로운 트렌드로 빅데이터, BI, SharePoint, 앱 등의 내용을 다룹니다.

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Notice

2013.02.14 03:15 SharePoint/SharePoint 2013

 

SharePoint 2013 App – 공급자 (Provider-hosted App) (3)

 

공급자 앱으로 Windows Azure 사이트에 SharePointChrome CSOM을 적용해보겠습니다 

먼저 Chrome 을 적용해 보면 앞에서 살펴본 자동 호스트 앱에서의 script, div 에 대한 내용은 동일합니다. IE의 호환성 보기에 따라 화면이 달라지니 화면이 깨진다면 호환성 보기를 확인하면 됩니다.

http://redju.tistory.com/254 

위 주소에 적용한 head 태그의 script 태그는 동일합니다. Body 태그에서는 aspx 이므로 CSOM 결과를 나타낼 컨트롤을 추가했습니다.

<body style="display: none">

       

    <!-- Chrome control  -->

    <div id="chrome_placeholder"></div>

    <div>

    <asp:literal ID="lists" runat="server"></asp:literal>

    </div>

</body>

 

Visual Studio 2012 SharePoint 응용 프로그램에서 자동으로 생성해준 CSOM 코드를 이용해서 리스트의 제목을 화면에 출력할 수 있습니다.

간략히 아래와 같이 코드를 작성했습니다.

using (var clientContext = TokenHelper.GetClientContextWithContextToken(hostWeb, contextToken, Request.Url.Authority))

            {

                Web web = clientContext.Web;

                clientContext.Load(web, w => w.Lists.Include(l => l.Title)
.Where(l => !l.Hidden));

                clientContext.ExecuteQuery();

               

 

                string str = "<ul>";

                foreach (var item in web.Lists)

                {

                    str += "<li>" + item.Title + "</li>";

                }

                str += "</ul>";

                lists.Text = str;

 

                clientContext.Dispose();

            }

 

최종적으로 결과를 확인합니다. 공급자 앱에서도 Token 을 얻어오면 CSOM 으로 SharePoint 개체에 접근할 수 있다는 것을 확인할 수 있습니다.

신고
posted by 정홍주
2013.02.11 16:26 SharePoint/SharePoint 2013

 

SharePoint 2013 App – 공급자 (Provider-hosted App) (2)

 

앞에서 SharePoint 2013의 공급자(Provider-hosted) 앱을 알아보았는데 localhost가 아닌 실제 사이트로 구성해보도록 하겠습니다. Localhost로 하면 간단히 테스트가 가능하지만 실제 사이트로 테스트를 해보고 실제 앱으로 게시하게 될 것이며 여기서 Windows Azure에 사이트를 하나 만들어서 공급자 앱으로 구성해봅니다. 미리 Windows Azure에 웹 사이트를 생성해둡니다.

Visual Studio 2012를 통해 앱의 형식을 공급자 호스트로 선택하고 기본 값을 선택합니다
 

SharePoint 사이트로 가서 아래 주소를 입력해봅니다.

사이트모음 주소/_layouts/15/appregnew.aspx
 

ID와 암호의 경우 생성 버튼을 클릭합니다.

제목과 공급자 도메인과 리다이렉션 URI(https://공급자 도메인/Pages/Default.aspx) 을 입력합니다. https로 입력해야 합니다. Windows Azure의 웹 사이트 주소가 됩니다.

 

위 정보를 메모장이나 그림판에 저장하던지 아니면 만들기를 누르지 말고 VS 2012에서 구성 후 만들기를 클릭하도록 하겠습니다.

SharePoint 프로젝트의 AppManifest.xml 를 오른쪽 클릭하고 코드 보기를 하고 아래처럼 앱 등록에서의 정보를 이용해서 수정합니다.

<Properties>

    <Title>SharePointProviderAppDemo</Title>

    <StartPage>https://Azure웹사이트주소/Pages/Default.aspx?{StandardTokens}</StartPage>

  </Properties>

 

  <AppPrincipal>

    <RemoteWebApplication ClientId="ID" />

  </AppPrincipal>

</App>

 

웹 프로젝트의 web.config 로 이동합니다. apSettings 태그로 이동하여 앱 등록에서의 정보를 이용해서 수정합니다.

<appSettings>

    <add key="ClientId" value="ID" />

    <add key="ClientSecret" value="앱 암호" />

  </appSettings>

 

앱 등록만들기를 클릭하지 않았으면 만들기를 클릭합니다.

AppManifest.xml 의 디자인 보기로 이동하여 권한 에서 웹에 읽기 권한을 지정합니다.

 

또한 Windows Azure의 웹 사이트를 클릭하여 Configure 메뉴에서 ClientID 와 ClientSecret 에 대한 구성값을 지정합니다. Web.Config 에 구성한 내용과 동일합니다.

웹 프로젝트를 오른쪽 클릭하여 [게시] 메뉴를 클릭하여 Windows Azure 로 게시합니다. Publishing Profile을 통해 게시하는 방법은 아래 링크를 참고하십시오.

http://redju.tistory.com/185 

 

솔루션 폴더를 오른쪽 클릭하여 솔루션 배포를 클릭합니다.프로젝트가 다 배포되었다면 SharePoint 에서 배포한 앱을 클릭합니다. 그러면 공급자 앱으로 다른 사이트로 이동되는 것을 볼 수 있으며 CSOM으로 Web의 Title을 출력하는 것을 확인할 수 있습니다.
 

 

다음에서 Chrome 과 CSOM 을 위 사이트에 적용해보겠습니다.

신고
posted by 정홍주
prev 1 next