如何在sharepoint 2013中获取oauth访问令牌?

Lui*_*cia 26 javascript sharepoint jquery oauth

我在这里有这个网站:http: //msdn.microsoft.com/en-us/library/jj164022(v = office.15).aspx

某些部分的文本说:以下JavaScript代码演示了如何使用JQuery生成此GET请求,该请求返回所有站点列表的JSON表示.它还假定您具有存储在accessToken变量中的有效OAuth访问令牌.如果您从应用程序Web中进行此调用,则不需要访问令牌,就像在SharePoint托管的应用程序中一样.

jQuery.ajax({
url: http:// site url/_api/web/lists,
type: "GET",
headers: {
"ACCEPT","application/json;odata=verbose",
"Authorization", "Bearer " + accessToken
},
})
Run Code Online (Sandbox Code Playgroud)

具体问题是如何获取访问令牌?

Mar*_* S. 5

似乎没有办法仅使用JavaScript获取访问令牌.您需要使用应用程序生成访问令牌.有关如何获取令牌的详细信息,请参阅Sharepoint OAuth提示和常见问题解答.

  • 在这种情况下,我们如何在Android或iOS设备等客户端中访问REST API? (6认同)

Rad*_*scu 4

你的整个方法都是不正确的。当使用 JavaScript 访问 sharepoint 2013 服务器的 REST 服务时,您不需要访问令牌。您必须改用 Sharepoint 2013 跨域库。

\n\n

http://msdn.microsoft.com/en-us/library/jj164022.aspx的页面在显示使用 oauth 令牌的经典 REST 请求后进行了解释:

\n\n
\n

如果您使用 JavaScript 编写应用程序但使用 SharePoint 2013 跨域库,则此请求看起来会略有不同。在这种情况下,您不需要提供访问令牌。以下代码演示了如果您使用跨域库并希望以 XML 而不是 JSON 的形式接收列表的 OData 表示形式,则此请求的外观。有关使用跨域库的详细信息,请参阅如何:使用跨域库从远程应用程序访问 SharePoint 2013 数据。

\n
\n\n

这是当前该文章的 URL\n http://msdn.microsoft.com/en-us/library/fp179927.aspx

\n\n

这应该是你的正确答案

\n

  • 如何为通过 REST 访问 SharePoint 列表的应用程序/服务生成令牌? (4认同)
  • @AnimaSola我不知道......我自己搜索了很多答案。Oauth 似乎仅用于 Sharepoint 应用程序。我最终所做的是使用 sharepoint 经典流程对其余调用进行身份验证:向用户指示的 sharepoint 页面呈现一个 Web 视图,在用户向 Microsoft 进行身份验证后获取 FedAuth 和 rTfa cookie,并将它们附加到每个其余调用中 (2认同)