2012-08-03 81 views
21

我有這個網站在這裏: http://msdn.microsoft.com/en-us/library/jj164022(v=office.15).aspx如何在SharePoint 2013中獲得oauth訪問令牌?

在某些部分文中說: 下面的JavaScript代碼演示瞭如何創建,通過使用JQuery返回所有網站的列表的JSON表示這個GET請求。它還假定您有一個存儲在accessToken變量中的有效OAuth訪問令牌。如果您從應用程序Web內部進行此調用,則不需要訪問令牌,就像在SharePoint託管的應用程序中一樣。

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

具體的問題是我該如何獲取訪問令牌?

回答

2

您的整個方法是不正確的。當涉及到使用JavaScript訪問Sharepoint 2013服務器的REST服務時,您不需要Access令牌。您必須改用Sharepoint 2013跨域庫。

http://msdn.microsoft.com/en-us/library/jj164022.aspx頁的使用Oauth令牌呈現出經典的REST請求後解釋說:

這個請求看起來有點不同,如果你正在寫在JavaScript中你的應用程序,但使用SharePoint 2013跨域庫。在這種情況下,您不需要提供訪問令牌。以下代碼演示瞭如果使用跨域庫並希望以XML而不是JSON的形式接收列表的OData表示形式,該請求的外觀。請參閱如何使用跨域庫從遠程應用程序訪問SharePoint 2013數據以獲取有關使用跨域庫的更多信息。

這是目前的URL該文章 http://msdn.microsoft.com/en-us/library/fp179927.aspx

這應該是你正確的答案

+4

如何爲通過REST訪問SharePoint列表的應用程序/服務生成令牌? – AnimaSola 2014-05-14 03:08:43

+1

@AnimaSola我不知道...我自己搜索了很多答案。 Oauth似乎只用於Sharepoint應用程序。我最終做的是使用sharepoint clasic flow驗證其他呼叫:向用戶指出的sharepoint頁面呈現web視圖,在用戶向Microsoft認證後獲取FedAuth和rTfa cookie,並將其與每次休息呼叫附加到一起 – 2014-05-14 08:05:07

5

似乎沒有辦法只使用JavaScript獲取訪問令牌。您需要使用應用程序來生成訪問令牌。有關如何獲取令牌的更多信息,請參閱Sharepoint OAuth Tips and FAQs

+3

在這種情況下,我們如何可以訪問REST API客戶端像Android或iOS設備? – 2015-05-16 09:01:11