SlideShare a Scribd company logo
1 of 13
Download to read offline
Visual Studioで作成する
SharePointアドイン開発
Line風Chat アドイン
2016年5月
SharePoint Onlineカスタマイズ
今回のお題
ディスカッション掲示板をLINE風の
インタフェースでリアルタイムに
チャットしたい
利用する仕組み
•SharePointホスト型アドイン
•カスタムWebページ
•ディスカッション掲示板
掲示板のインスタンスを作成
ChatのベースはSharePoint標準のディスカッション掲示板を利用します
掲示板を操作するJS
ディスカッション掲示板をアクセスする
ライブラリを探してみる
Working with Discussions List via
SharePoint Client Object Model
https://blog.vgrem.com/2014/01/20/working-with-discussions-list-via-sharepoint-
client-object-model/
技術調査
LINE風メッセージ表示
WordPressにCSSをコピペし「LINEぽい
吹き出し」を作って会話を入力する方法
http://nelog.jp/line-bolloon-css
技術調査
カスタムWebページのロジック
ExecuteOrDelayUntilScriptLoaded(initializePage, "sp.js");
function initializePage()
{
var context = SP.ClientContext.get_current();
var user = context.get_web().get_currentUser();
context.load(user);
context.executeQueryAsync();
$(document).ready(function () {
//ページ表示処理
});
function autoUpdateMessages() { //自動更新はsetTimeoutを利用している
updateMessages(currentDisscussion, autoLatestUpdated, function () {
setTimeout(autoUpdateMessages, 5000);
});
}
}
クライアント側のJavaScriptでロジックは記述。ページの初期表示はsp.jsを読
み込んだ後のdocument readyのタイミングで行う。自動更新はsetTimeoutを利
用している
掲示板の検索
function createAllMessagesByDisscussionIDQuery(disscussionId, lastmodified) {
var qry = new SP.CamlQuery;
var viewXml;
if (lastmodified) {
viewXml = "<View Scope='Recursive'> ¥
<Query> ¥
<Where> ¥
<And> ¥
<Eq> ¥
<FieldRef Name='ParentFolderId' /> ¥
<ValueType='Integer'>" + disscussionId + "</Value> ¥
</Eq> ¥
<Gt> ¥
<FieldRef Name='Modified' /> ¥
<ValueType='DateTime'StorageTZ='TRUE' IncludeTimeValue='TRUE'>"
+ ISODateString(lastmodified) + "</Value> ¥
</Gt> ¥
</And> ¥
</Where> ¥
</Query> ¥
</View>";
} else {
}
qry.set_viewXml(viewXml);
return qry;
}
CAMLを使うと複雑な検索もできる!!
リストの検索
SharePoint JavaScript オブジェクト モデルを利用したリスト検索
は効果的にデータを取得するため独特のステップが必要
1
• 検索条件をCAMLで構築
camlQuery.set_viewXml()
2
• リストを検索(実際には検索されない)
completedItems = employeeList.getItems(camlQuery);
3
• 取得するプロパティを指定
clientContext.load(completedItems);
4
• 検索の実行(実際に検索)
clientContext.executeQueryAsync(success,fail);
全体レイアウト
<asp:Content ContentPlaceHolderID="PlaceHolderMain" runat="server">
<div id="navigation-area">
<div><p>
<asp:HyperLink runat="server"
NavigateUrl="JavaScript:window.location = _spPageContextInfo.webAbsoluteUrl + '/Lists/Chat/AllItems.aspx';"
Text="掲示板の管理" />
</p></div>
<p>ディスカッション</p>
<ul id="discussion-items">
</ul>
</div>
<div id="main-area">
<table id="discussion-messages">
<tbody> </tbody>
<tfoot>
<tr><td></td><td>
<div id="input-message-area" style="display:none;">
<textarea rows="5" cols="10" id="input-message" ></textarea>
<input id="send-message" type="button" value="送信" />
</div>
</td><td></td></tr>
</tfoot>
</table>
</div>
</asp:Content>
カスタムページとCSSを利用して全体レイアウトを作成する
HTMLと少しWeb Formの知識があれば簡単
完成
掲示板の管理で
ディスカッションを作成
左のディスカッション一覧から
選択してチャットが可能
まとめ
• SharePointのディスカッション掲示板を利用してChat
ツールを作成
• SharePointホスト型でクライアント側のロジックだけ
で実現(お手軽に組み込める!!)
• SharePoint JavaScript オブジェクト モデルは機能が豊
富で様々なアドインを作成することができる
• ソースコード
https://github.com/akihiroe/SharePointChatAddin
http://www.proaxia-consulting.co.jp
Azure&SharePointアプリケーション開発についてのお問合せ
[担当] akihiro.ehara@proaxia-consulting.co.jp
SharePoint Onlineとファイルサーバーを統合するCloud Storage Light
https://www.cloudstoragelight.com
SharePoint 上のファイルをエクスプローラ感覚でサクサク操作するSharePointエクスプローラ
https://www.cloudstoragelight.com/sharepointexplorer/

More Related Content

What's hot

SharePoint アドオンのススメ
SharePoint アドオンのススメSharePoint アドオンのススメ
SharePoint アドオンのススメ
MasakiNishioka
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
Masayuki Wakizaka
 

What's hot (20)

BlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようBlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみよう
 
最近のやられアプリを試してみた
最近のやられアプリを試してみた最近のやられアプリを試してみた
最近のやられアプリを試してみた
 
はじめてのDynamoDBスキーマ設計
はじめてのDynamoDBスキーマ設計はじめてのDynamoDBスキーマ設計
はじめてのDynamoDBスキーマ設計
 
SharePoint アドオンのススメ
SharePoint アドオンのススメSharePoint アドオンのススメ
SharePoint アドオンのススメ
 
Power Apps の導入失敗実例からベストプラクティスを学んでみる(強引)
Power Apps の導入失敗実例からベストプラクティスを学んでみる(強引)Power Apps の導入失敗実例からベストプラクティスを学んでみる(強引)
Power Apps の導入失敗実例からベストプラクティスを学んでみる(強引)
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
 
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Serviceメルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
 
Outlook アドイン開発入門
Outlook アドイン開発入門Outlook アドイン開発入門
Outlook アドイン開発入門
 
Viva Connections 拡張機能入門
Viva Connections 拡張機能入門Viva Connections 拡張機能入門
Viva Connections 拡張機能入門
 
IaC事始め Infrastructure as Code やってみる?
IaC事始め Infrastructure as Code やってみる?IaC事始め Infrastructure as Code やってみる?
IaC事始め Infrastructure as Code やってみる?
 
失敗から学ぶAndroid設計話
失敗から学ぶAndroid設計話失敗から学ぶAndroid設計話
失敗から学ぶAndroid設計話
 
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
 
SharePoint Server 2016 ハイブリッド検索やってみた
SharePoint Server 2016 ハイブリッド検索やってみたSharePoint Server 2016 ハイブリッド検索やってみた
SharePoint Server 2016 ハイブリッド検索やってみた
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
SharePoint Framework Extension 基礎講座
SharePoint Framework Extension 基礎講座SharePoint Framework Extension 基礎講座
SharePoint Framework Extension 基礎講座
 
Visual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うVisual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使う
 
日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話
日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話
日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話
 

Similar to SharePointアドイン開発 Line風Chat アドイン

Share point 365 - 概要とアプリ開発
Share point 365 - 概要とアプリ開発Share point 365 - 概要とアプリ開発
Share point 365 - 概要とアプリ開発
JamesLRishe
 
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
de:code 2017
 
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
Akira Inoue
 
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Akira Inoue
 

Similar to SharePointアドイン開発 Line風Chat アドイン (20)

Silverlightを囲む会in大阪#19
Silverlightを囲む会in大阪#19Silverlightを囲む会in大阪#19
Silverlightを囲む会in大阪#19
 
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
 
SharePoint 開発でできること 2019年9月版
SharePoint 開発でできること 2019年9月版SharePoint 開発でできること 2019年9月版
SharePoint 開発でできること 2019年9月版
 
SharePoint Framework の最新情報をキャッチアップしよう!
SharePoint Framework の最新情報をキャッチアップしよう!SharePoint Framework の最新情報をキャッチアップしよう!
SharePoint Framework の最新情報をキャッチアップしよう!
 
Word pressはじめの一歩 テーマ作成ハンズオン
Word pressはじめの一歩 テーマ作成ハンズオンWord pressはじめの一歩 テーマ作成ハンズオン
Word pressはじめの一歩 テーマ作成ハンズオン
 
クラウド時代の SharePoint 開発に備えよう
クラウド時代の SharePoint 開発に備えようクラウド時代の SharePoint 開発に備えよう
クラウド時代の SharePoint 開発に備えよう
 
SQLWorld★大阪#8
SQLWorld★大阪#8SQLWorld★大阪#8
SQLWorld★大阪#8
 
Share point 小ネタ集
Share point 小ネタ集Share point 小ネタ集
Share point 小ネタ集
 
Share point 365 - 概要とアプリ開発
Share point 365 - 概要とアプリ開発Share point 365 - 概要とアプリ開発
Share point 365 - 概要とアプリ開発
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar
 
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
 
Web制作勉強会 #1
Web制作勉強会 #1Web制作勉強会 #1
Web制作勉強会 #1
 
HTML5 for IA
HTML5 for IAHTML5 for IA
HTML5 for IA
 
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介
 
WordBench京都版 _sハンズオン
WordBench京都版 _sハンズオンWordBench京都版 _sハンズオン
WordBench京都版 _sハンズオン
 
デザインが統一されているShare point サイトを作成しよう
デザインが統一されているShare point サイトを作成しようデザインが統一されているShare point サイトを作成しよう
デザインが統一されているShare point サイトを作成しよう
 
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
 
すべての人に知っておいてほしい VoiceOverの基本原則
すべての人に知っておいてほしい VoiceOverの基本原則すべての人に知っておいてほしい VoiceOverの基本原則
すべての人に知っておいてほしい VoiceOverの基本原則
 
Silverlightで作るSharePoint Webパーツ
Silverlightで作るSharePoint WebパーツSilverlightで作るSharePoint Webパーツ
Silverlightで作るSharePoint Webパーツ
 
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
 

More from Akihiro Ehara

エンタープライズ.Net RIAサービス
エンタープライズ.Net RIAサービスエンタープライズ.Net RIAサービス
エンタープライズ.Net RIAサービス
Akihiro Ehara
 

More from Akihiro Ehara (13)

Visual Studio TypeScript npm WebPack
Visual Studio TypeScript npm WebPackVisual Studio TypeScript npm WebPack
Visual Studio TypeScript npm WebPack
 
Share point開発 勤怠管理
Share point開発 勤怠管理Share point開発 勤怠管理
Share point開発 勤怠管理
 
Share point開発 ファイル受信
Share point開発 ファイル受信Share point開発 ファイル受信
Share point開発 ファイル受信
 
SharePoint Onlineアクセスモニター
SharePoint OnlineアクセスモニターSharePoint Onlineアクセスモニター
SharePoint Onlineアクセスモニター
 
SharePointアドイン開発 SAPデータ連携
SharePointアドイン開発 SAPデータ連携SharePointアドイン開発 SAPデータ連携
SharePointアドイン開発 SAPデータ連携
 
Cloud storage light
Cloud storage lightCloud storage light
Cloud storage light
 
エンタープライズ.Net light switch
エンタープライズ.Net light switchエンタープライズ.Net light switch
エンタープライズ.Net light switch
 
エンタープライズ.Net RIAサービス
エンタープライズ.Net RIAサービスエンタープライズ.Net RIAサービス
エンタープライズ.Net RIAサービス
 
エンタープライズ.Net DataSet
エンタープライズ.Net DataSetエンタープライズ.Net DataSet
エンタープライズ.Net DataSet
 
エンタープライズ.Net RIAサービス
エンタープライズ.Net RIAサービスエンタープライズ.Net RIAサービス
エンタープライズ.Net RIAサービス
 
エンタープライズ.Net 詳細設計編
エンタープライズ.Net 詳細設計編エンタープライズ.Net 詳細設計編
エンタープライズ.Net 詳細設計編
 
エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編
 
エンタープライズ.Net 分析編
エンタープライズ.Net 分析編エンタープライズ.Net 分析編
エンタープライズ.Net 分析編
 

SharePointアドイン開発 Line風Chat アドイン