我正在尝试从应用程序中使用 sharepoint 在线搜索 api (/_api/search)。从 Azure 门户添加它我看到搜索仅在“委派权限”部分中。当我使用用户登录进行测试并批准它时,它运行良好。因为我不想让用户登录,所以我找到了这篇文章
这让我相信可以将搜索仅用作应用程序而不是用户。我按照所有步骤,通过 appregnew.aspx 创建了应用程序,我还通过 appinv.aspx 添加了另一个权限,所以我要求的权限如下:
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
<AppPermissionRequest Scope="http://sharepoint/search" Right="QueryAsUserIgnoreAppPrincipal" />
</AppPermissionRequests>
我正在使用 ADAL JAVA SDK 进行测试,如下所示:
Future<AuthenticationResult> future = context.acquireToken(
resource, new ClientCredential(clientId,
clientSecret), null);
其中资源是 xxxxxx.sharepoint.com,我稍后将使用此令牌作为不记名令牌。
但是,当我尝试对此进行测试时,出现以下错误:
2018-08-05 11:03:22 WARN ODataUtils:120 - 无法获得 uri [ https://XXXXXX.sharepoint.com/_api/search]的成功响应,原因 [{"error_description":"服务器是由于内部错误而无法处理请求。有关该错误的更多信息,请在服务器上打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或来自配置行为)以便将异常信息发送回客户端,或者打开根据 Microsoft .NET Framework SDK 文档进行跟踪并检查服务器跟踪日志。"}];
由于这是在线共享点,我没有服务器,也没有使用 .NET 框架,所以我还有什么其他方法可以调试它?或其他想法我在这里做错了什么?
任何帮助将不胜感激。