からめもぶろぐ。

CSOM 完全に理解した

SharePoint

New-SPOSite した直後に更新操作をしようとすると失敗することがある

SharePoint Online Management Shell を使って New-SPOSite したあとに、CSOM などで何らかの更新操作 (例えばサイト グループを作ったりするなど) をしようとするとエラーになることがあります。そもそも、SharePoint Online でのサイト コレクションの操作…

Powershell と CSOM で Geolocation 列に値を入れるときにちょっとハマったのでメモ

相変わらず PowerShell なんですけれども。Geolocation 列に値を入れる方法については以下にまとまっています。FieldGeolocationValue を使ってねということのようです。docs.microsoft.comそれでは実際にやってみます。 $item = New-Object Microsoft.Share…

SharePoint Online Management Shell が PowerShell Gallery から取得できる件

以前にこんな記事を書きました。blog.karamem0.jpその後 SharePoint Online Management Shell については PowerShell Gallery からもインストールできるようになったようです。半年近く前の話なのに全然気付きませんした…。techcommunity.microsoft.comイン…

Microsoft Graph でも SharePoint リスト アイテムの複数の値を持つ列が更新できない

SharePoint REST API の時代からですが複数の値を持つ列 (MultiChoice、UserMulti、LookupMulti) を更新できないという問題がありました。英語フォーラムの情報を見てもできるという情報もあったりできないという情報があったりして錯綜しているのですが、少…

SharePoint Framework 1.6 がリリースされました

2018/09/05 に SharePoint Framework 1.6 がリリースされました。developer.microsoft.com大きなアップデートとしては、SharePoint Framework 1.4.1 で追加された、Microsoft Graph (MSGraphClient) および Azure Active Directory 認証で保護されたカスタム…

SharePoint Framework のデプロイを自動化する

(2018/08/14 追記) 説明が足りない箇所があったため全体的に書き直しました。2017/11 に SharePoint ALM API が提供されました。これにより、SharePoint アプリ (Add-ins) や SharePoint Framework のアプリのビルドとデプロイを自動化できるようになりまし…

SharePoint Framework 1.5 がリリースされました

2018/06/05 に SharePoint Framework 1.5 がリリースされました。developer.microsoft.com機能追加としては、パッケージ マネージャーとして npm のほかに pnpm と Yarn が使えるようになりました。これによりプロジェクトを作成するときの時間と容量を節約…

SharePoint Online Management Shell がインストールする CSOM がイケてない

発端は Japan SharePoint Support Team Blog の記事です。PowerShell で SharePoint CSOM を使用する際の Tips – Japan SharePoint Support Team Blog SharePoint Online Management Shell をインストールすることで、CSOM のモジュールもインストールされま…

SharePoint Framework 1.4.1 で追加された MSGraphClient を試してみた

SharePoint Framework 1.4.1 がリリースされ、プレビューですが Graph API をサポートしました。Office Dev Center - Now Releasing – Enhanced preview support for Microsoft Graph API calls from SharePoint Frameworkこれまでのバージョンでは、GraphHt…

SharePoint でコンテンツ エディター Web パーツが表示されない場合の対処方法

SharePoint Online の場合にコンテンツ エディターが表示されない場合はだいたい以下の理由で解決します。support.office.comそれ以外の場合でコンテンツ エディター Web パーツが表示されない場合があります。具体的には、サイト コレクションを [テンプレ…

SharePoint 2013 REST API の UserCollection.GetByLoginName メソッドを呼び出すとエラーが発生する

SharePoint 2013 で REST API の UserCollection.GetByLoginName メソッドを呼び出したときに、以下のメッセージでエラーが発生することがあります。 危険な可能性のある Request.Path 値がクライアント (:) から検出されました。 エラーの詳細については [t…

SharePoint 管理シェルで使用されている PipeBind オブジェクトについて

この記事は「PowerShell Advent Calendar 2017」の参加記事です。qiita.comSharePoint 管理シェルでは、例えば Get-SPWeb の Identity パラメーターに URL または ID (GUID) を渡すことができます。下記の例ではあえてキャストしていますが、もちろん文字列…

SharePoint 2016 で個人用サイトを作成すると謎のサイト コレクションが作成される

SharePoint 2016 で個人用サイトを作成したときに「sitemaster-<GUID>」という名前の見慣れないサイト コレクションが作成されます。これは SharePoint 2016 から追加された「高速なサイト コレクション作成」という機能によるものです。あらかじめサイト マスター</guid>…

SharePoint Framework (SPFx) から Office 365 API を叩いてみる

SharePoint Framework (SPFx) の Web パーツでは新しいエクスペリエンスが採用され、これまでの SharePoint アドインで使用されていた iframe が廃止されました。SharePoint アドインでは OAuth2 の暗黙的な許可フローでうまいこと iframe 内でリダイレクト…

SharePointPnP.PowerShell Commands というものがあるらしい

github.comアルェー(・3・)公式でサポートしてるのかよ…完全に見落としてた。

CSOM の WebTemplate には Path が入ってこない

どういうことかというと、以下のコードを実行します。 public static class Program { private static void Main(string[] args) { var siteUrl = "<サイトの URL>"; var userName = "<ユーザー名>"; var rawPassword = "<パスワード>"; var securePassword …

SharePoint Online の Excel Services (SOAP API) を叩いてみる

Excel Services を使うと SharePoint のドキュメント ライブラリに保存されている Excel ファイルを直接編集することができます。プログラムから Excel を編集というと Open XML SDK を使うか、サードパーティー製のコンポーネントを使うかという話になるの…

CSOM で実行される Web リクエストを取得する

CSOM では内部的に Web リクエストを発行していて、どういうリクエストが流れているかを見るためには Fiddler などのツールを使わないといけないのですが、とても面倒くさいので、コードから取得できるようにしてみました。ちなみに ExecutingWebRequest イ…

CSOM の Site.OpenWeb メソッドで File Not Found が発生する件について

CSOM で以下のコードのように同じサイトを作成したり削除したりを繰り返すと ServerException (File Not Found) が発生します。 最初はタイミングの問題かなと思ったのですが、スリープを入れても常に発生するので、そういう問題でもなさそう。 $context.Loa…

SharePoint Online で日本語名のファイルをダウンロードするとファイル名が欠落する件が解消された模様

blogs.technet.microsoft.comSharePoint Online では長い日本語名のファイルをダウンロードするとファイル名が欠落する件が発生していたのですが、最近になって解消された模様です。ちなみに OneDrive for Bussiness のほうも同様に解消されているようです。…

SharePoint 2013 で JavaScript からユーザー選択ウィンドウ (PeoplePicker) を呼び出す

<SharePoint:PeopleEditor> を使わずに JavaScript だけでダイアログを表示してユーザー選択をさせるサンプルです。github.comやっていることは割と簡単で /_layouts/15/Picker.aspx を SP.UI.ModalDialog.showModalDialog で呼び出すだけです。戻り値として XML が返ってくるので中身</sharepoint:peopleeditor>…

JSOM の executeQueryAsync で使われている Function.createDelegate について

JSOM のサンプルを見ると当たり前のように使われている Function.createDelegate について。引数に this を渡しているのでだいたい想像が付くとは思いますが、JavaScript の this の面倒なアレを解決してくれるんですね。 <asp:Content ContentPlaceHolderID="PlaceHolderMain" runat="server"> <script type="text/javascript"> var obj = { web: null, retrieve</asp:content>…

SharePoint Online の REST API を PowerShell から叩いてみる

この記事は「PowerShell Advent Calendar 2016」の参加記事です。qiita.com前回の記事で「REST API を Invoke-RestMethod で叩けるかも」と丸投げなことを書いてしまったので、実際にやってみたいと思います。blog.karamem0.jp OAuth についておさらい Share…

SharePoint を PowerShell から操作する方法まとめ

この記事は「PowerShell Advent Calendar 2016」の参加記事です。qiita.com今は SharePoint をメインでやっているこのブログもいつの間にか PowerShell タグがついた記事が結構増えているわけですが、SharePoint の構築や運用にあたって PowerShell は欠かせ…

SharePoint で SharePoint じゃないページを作る

この記事は「Office 365 Advent Calendar 2016」の参加記事です。www.adventar.org SharePoint は標準でもそこそこそれなりに使えるのですが、やはりデザインをカスタマイズしたいという要望は多いです。でも SharePoint のスタイル シート構造を理解してカ…

SharePoint 2013 のお知らせリストで「続きを読む」を実装する

「こういうの欲しいよね?」ということでサクッと JSLink を使って実装してしまいます。 (function() { var overrideCtx = {}; overrideCtx.ListTemplateType = 104; overrideCtx.BaseID = 100; overrideCtx.Templates = {}; overrideCtx.Templates.Fields =…

SharePoint ファーム ソリューション ファイルを一発で展開する

開発時によく使うけど忘れるので書きました。 ソリューションをアンインストールした直後は削除できないのでループで回すようにしています。github.com Add-PSSnapin "Microsoft.SharePoint.PowerShell" $path = "<ソリューションファイルのパス>" $name = […

SharePoint Online から Dynamics CRM Online の Web API を実行する

SharePoint ホスト型アドインを使用して SharePoint Online から Dynamics CRM Online の Web API を実行します。これまでは SharePoint Online から Dynamics CRM Online に接続するにはプロキシ サーバー経由で実行する方法しかなかったのですが*1、Dynami…

SharePoint アドイン プロジェクトで TypeScript を使えるようにする

SharePoint ホスト型の SharePoint アドイン プロジェクトではサーバー側のコードを書けないので、App.js に JavaScript を書いていくことになるのですが、どうせなら TypeScript 使いたいよね!と思っても App.js を App.ts に変えただけでは自動的にコンパ…

SharePoint Online の REST API を UWP から実行する

UWP から SharePoint Online REST API を実行するサンプルを作りました。出退勤の打刻を SharePoint リストに送るプログラムです。OAuth を使っているので認証から API 実行までの流れが確認できると思います。なお Access Token の更新には対応していません…