我想获得一份 SP2013 列表,但我不能使用 CSOM。我已经在 Sharepoint 上注册了我的应用程序(一个 cmd 测试应用程序,而不是 SP 托管的应用程序),并且有一个 clientId 和 clientSecret。
但是当我提交我构建的授权网址时:
https://mysite.sharepoint.com/_layouts/15/OAuthAuthorize.aspx?client_id=<myclientId>&scope=list.read&response_type=code&redirect_uri=https%3A%2F%2Fwww.google.com
我在提琴手上得到一个 http403。
或者
当我从浏览器请求它时,我被重定向到:
https://www.google.com/?error=invalid_scope&error_description=The%20scope%20list%2Eread%20is%20not%20valid%2E
这是我的 redirect_uri 但错误“无效范围”。我尝试使用范围 uri(而不是别名)并得到相同的响应。
请注意,当我从浏览器发出请求时,我也通过了身份验证。否则我会被重定向到登录页面。
如何获取访问令牌以向 Sharepoint 发出 REST 请求?
这是对我正在尝试做的事情的更长描述:
我在 有一个共享点列表https://mysite.sharepoint.com/
。(位置实际上是https://mysite.sharepoint.com/_layouts/15/start.aspx#/Lists/TestTasksList
:)
我想从一个 android 应用程序中查询它。到目前为止,我已经使用 xamarin 构建了 Android 应用程序来创建任务。我不能使用客户端对象模型。所以唯一的选择是使用 Rest Api。我试图创建一个简单的 .net cmd 行应用程序来查询其余的 api,但我找不到身份验证的方法。我想我需要使用 OAuth,但即使在获取了 clientId 和 clientsecret 之后,我也无法发出请求。我无法获得访问令牌。
我发现的大多数代码示例都是针对要在云中部署的共享点应用程序,它们似乎忽略了身份验证位(或仅使用默认凭据)。
我设法在 .net cmd 应用程序中使用 CSOM 对列表进行身份验证和查询。但是我找不到使用其余 api 的方法。我知道我们可以使用旧版 Web 服务(来自 SP2010),但这不能作为长期解决方案。
因此,底线是使用 REST api 从控制台应用程序查询 Office 365 中的列表。