0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CSOM(C#)でSharePointサイトを作成する

Last updated at Posted at 2020-02-05

#概要
CSOM(C#)で新しくSharePointサイトを作成するのに、簡単かと思いきや意外と迷走したので備忘録として書いておきます。
機能としてはそれほど需要が無いかもしれませんが、テスト用に複数のサイトをまとめて作る場合などに便利です。

#コード

ControlSite.cs
                var loginUser = ConfigurationManager.AppSettings["SPO_ID"];
                var loginPass = ConfigurationManager.AppSettings["SPO_PASS"];
                var siteCollectionUrl = ConfigurationManager.AppSettings["SITE_URL"];

                using (var clientContext = new ClientContext(siteCollectionUrl))
                using (var secureString = new SecureString())
                {
                    foreach (var c in loginPass) secureString.AppendChar(c);
                    secureString.MakeReadOnly();
                    clientContext.Credentials = new SharePointOnlineCredentials(loginUser, secureString);

                    //作成するサイト情報
                    var subSiteCreateInfo = new WebCreationInformation
                    {
                        Title = "サブサイトです",               // タイトル
                        Description = "サブサイトの説明です",   // 説明
                        Language = 1041,                        // 言語(日本語)
                        Url = "subsite20200205-01",             // Url
                        UseSamePermissionsAsParentSite = true,  // 権限の継承
                        WebTemplate = "STS#3"                   // サイトテンプレート(チームサイト・Office365グループ無し)
                    };

                    //作成
                    var newWebSite = clientContext.Web.Webs.Add(subSiteCreateInfo);
                    clientContext.Load(
                        newWebSite,
                        s => s.ServerRelativeUrl,       // 結果出力用
                        s => s.Created);                // 結果出力用
                    clientContext.ExecuteQuery();

                    Console.WriteLine($"サブサイトが正常に作成されました。Url:{newWebSite.ServerRelativeUrl} Created:{newWebSite.Created}");
                }

#コード説明

  1. サイトコレクションまたはサイトに接続
  2. WebCreationInformationクラスを用いて新しいサイトのプロパティを指定
  3. ClientContext.Web.Webs.Addで、現在のサイトのサブサイトとして新しいサイトが作成される

#WebCreationInformationクラス
新しいサイトのプロパティを設定します。

  • Title … サイト名を指定
  • Description … サイトの説明を指定
  • Language … LCIDを指定
  • Url … URLを指定
  • UseSamePermissionsAsParentSite … True:権限を継承する / False:権限を継承しない
  • WebTemplate … サイトテンプレートを指定

##WebCreationInformation.Lanuguage
LCIDを指定します。日本語の場合、1041です。
他言語の場合は、下記が参照になると思います。
Language.Lcid property

##WebCreationInformation.WebTemplate
サイトテンプレートを指定します。
チームサイト・Office365グループ無しは、"STS#3" です。

サイトテンプレート一覧を探したのですが、Microsoft公式からは見つけられませんでしたので、下記リンクを置いておきます。
SharePoint Site Template ID – Microsoft Office 365
ブラウザ上で、サイト作成時に使用したテンプレートを特定する

ちなみに私は一つサイトを作り、そのWebサイトのプロパティをデバッグで調べるという力技を使いました。

#実行結果
下記のように新しくサイトが作成されます。
image.png

#参考
SharePoint のクライアント ライブラリ コードを使用して基本的な操作を完了する

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?