将项目添加到 SharePoint Online 列表 c#

Add item to SharePoint Online list c#

我有一个网站 api,它的正文中有一些数据,我想使用 c# 将这些数据添加到 SharePoint 在线列表中。但是下面的代码给我未授权的错误。

using (var context = new ClientContext(siteUrl))
{
    context.ExecutingWebRequest += Context_ExecutingWebRequest; // for oAuth it working in get list dat
    Web web = context.Web;  

    List topicsList = context.Web.Lists.GetByTitle("ListName");
    ListItemCreationInformation newTopicInfo = new ListItemCreationInformation();
    ListItem oListItem = topicsList.AddItem(newTopicInfo);                  

    oListItem["Title"] = "Test";
    oListItem["Column1"] = "Test1";                                    
    oListItem.Update();

    context.ExecuteQuery();
}

对于 SharePoint Online,使用 SharePointOnlinCredentials class 将凭据传递给身份验证:

        string password = "*******";
        string account = "username@tenant.onmicrosoft.com";
        var secret = new SecureString();
        foreach (char c in password)
        {
            secret.AppendChar(c);
        }
    using (ClientContext ctx = new ClientContext("https://tenant.sharepoint.com/sites/dev/"))
    {

        ctx.Credentials = new SharePointOnlineCredentials(account, secret);
        ctx.Load(ctx.Web);
        ctx.ExecuteQuery();
        List topicsList  = ctx.Web.Lists.GetByTitle("ListName");

        ListItemCreationInformation oListItemCreationInformation = new ListItemCreationInformation();
        ListItem oListItem  = topicsList.AddItem(oListItemCreationInformation);
        oListItem ["Title"] = "New List Item";
        oListItem["Column1"] = "Test1"; 
        oListItem .Update();
        ctx.ExecuteQuery();

    };

以上代码现在运行良好,我缺少对我的应用程序的权限。要使用 oAuth,我们必须在 SharePoint 中注册一个加载项,并且对于共享点中的 post 数据,我必须为我的加载项提供 FullControl,但在创建时我已将其设置为只读。 以下是参考。 Referance