사람들이 CSOM API를 사용하여 검색합니다
-
29-09-2020 - |
문제
API에서 CSOM을 사용하고 있습니다.나는 문서에서 콘텐츠 검색을 위해 다음 코드를 사용했으며 이제는 CSOM을 사용하여 SharePoint 웹 사이트에서 사용자를 검색 할 수있는 사람들이 검색을 통합하려고합니다.
MethodResponse<ClientResult<ResultTableCollection>> response = new MethodResponse<ClientResult<ResultTableCollection>>();
UserCredential userCredential = new UserCredential();
try
{
userCredential = VerifyToken(token);
if (userCredential != null)
{
_ctx = GetClientContext(userCredential);
if (_ctx != null)
{
KeywordQuery keywordQuery = new KeywordQuery(_ctx);
keywordQuery.QueryText = Convert.ToString(text);
SearchExecutor searchExecutor = new SearchExecutor(_ctx);
ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
_ctx.ExecuteQuery();
response.ErrorCode = "200";
response.ErrorDescription = "No Error";
response.Response = results;
}
}
}
.
나는 이것을 찾고 있지만 헛되이 시도했다.제발 도와주세요.
해결책
나는 그것을 자신을 해결하고, 실제로 누군가를 도울 수 있습니다 ..
public MethodResponse> GetPeoples(string text, string token) { MethodResponse> response = new MethodResponse>(); List lstMetadata = new List(); UserCredential userCredential = new UserCredential(); try { userCredential = VerifyToken(token); if (userCredential != null) { _ctx = GetClientContext(userCredential); if (_ctx != null) { KeywordQuery keywordQuery = new KeywordQuery(_ctx); keywordQuery.QueryText = text; // keywordQuery.HiddenConstraints = "scope:\"People\""; keywordQuery.TrimDuplicates = true; keywordQuery.SourceId = Guid.Parse("B09A7990-05EA-4AF9-81EF-EDFAB16C4E31"); SearchExecutor searchExecutor = new SearchExecutor(_ctx); ClientResult results = searchExecutor.ExecuteQuery(keywordQuery); _ctx.ExecuteQuery(); if (results.Value[0].RowCount > 0) { foreach (var resultRow in results.Value[0].ResultRows) { lstMetadata.Add(resultRow["PreferredName"].ToString()); } response.ErrorCode = "200"; response.ErrorDescription = "No error."; response.Response = lstMetadata; } else { response.ErrorCode = "400"; response.ErrorDescription = "No users found."; response.Response = lstMetadata; } } } } catch (Exception ex) { response.ErrorCode = "400"; response.ErrorDescription = ex.Message; response.Response = null; } finally { _ctx.Dispose(); } return response; }.
제휴하지 않습니다 sharepoint.stackexchange