我们正在LUIS/Microsoft Bot框架上构建产品,我们对其中一个疑问就是人名理解.只要注册我们的网站,任何人都可以使用该产品.这意味着任何正在注册的公司都可以拥有任意数量的员工.
我们理解的是用户实体无法识别所有名称.我们已经创建了一个短语列表,但据我们所知,短语列表有限制(10K或者即使它的100K)并且世界上的名称永远不会有限制.我们想到的另一种方式是不用话语训练实体.但是,如果我们拥有100个拥有1000个用户的客户,那么在这种情况下,话语就不是一个好主意.
我没有看到任何其他处理这种情况的方法.可能我在这里遗漏了一些东西?任何人遇到类似的问题以及如何处理?
最糟糕的情况是为每个客户创建一个单独的LUIS实例,但这只是因为我们无法处理名称而完成的任务.
因为两天解决问题,我疯了.问题是;
我正在制作一个控制台APP,它使用全局管理员帐户(在制作新订阅时指定为管理员)与SharePoint Online交谈.我想要实现的是,我想使用CSOM为Office 365的每个网站集和子网站添加自定义操作.该代码工作正常,但注册时由Office 365预先创建的根网站集(即https://xyz.sharepoint.com)
对于任何用于根网站收集的租户,它会给出以下错误;
{"SchemaVersion":"15.0.0.0","LibraryVersion":"16.0.3912.1201","ErrorInfo":{"ErrorMessage":"访问被拒绝.您无权执行此操作或访问此资源.", "ErrorValue":null,"TraceCorrelationId":"2a47fd9c-c07b-1000-cfb7-cdffbe3ab83a","ErrorCode": - 2147024891,"ErrorTypeName":"System.UnauthorizedAccessException"},"TraceCorrelationId":"2a47fd9c-c07b-1000 -cfb7-cdffbe3ab83a"}
现在用户是全局管理员.我还再次将该用户添加为网站集管理员.
同一段代码可以在其他网站集(搜索网站集,任何新制作的网站集......)上正常工作.
这是一个代码;
using (ClientContext spcollContext = new ClientContext(web.Url))
{
SecureString passWord = new SecureString();
foreach (char c in strAdminPassword.ToCharArray()) passWord.AppendChar(c);
SharePointOnlineCredentials creds = new SharePointOnlineCredentials(strAdminUser, passWord);
spcollContext.Credentials = creds;
Web currentweb = spcollContext.Web;
spcollContext.Load(currentweb);
spcollContext.ExecuteQuery();
// authCookie = creds.GetAuthenticationCookie(new Uri(web.Url));
var existingActions2 = currentweb.UserCustomActions;
spcollContext.Load(existingActions2);
spcollContext.ExecuteQuery();
var actions2 = existingActions2.ToArray();
foreach (var action in actions2)
{
if (action.Description == "CustomScriptCodeForEachsite" &&
action.Location == "ScriptLink")
{
action.DeleteObject(); …
Run Code Online (Sandbox Code Playgroud) sharepoint sharepoint-clientobject office365 csom sharepoint-online