好吧,我們正在構建一個iPhone應用程序,以打擊Office 365上託管的Sharepoint 2013網站。如果我在C#中構建此應用程序,我已經完成了,只要使用TokenHelper.cs就可以獲得大部分路徑。不幸的是,據我所知,目前還沒有Objective-C的TokenHelper。Sharepoint 365目標C中的ACS OAuth:領域錯誤 - 需要幫助
因此,我們已經成功地獲得了OAuth身份驗證/授權頁面,併成功獲得授權碼。
在此之後,我們因爲知道我們錯過了POST中的領域ID來獲取我們的訪問和刷新標記,所以我們有點難過。我終於明白TokenHelper是如何做到這一點的,而且我們重複了這一點。 (這是對/_vti_bin/client.svc的額外調用,你希望得到一個401,這樣你就可以將領域id從標題中拉出來)
我們現在有一個領域ID,閱讀文檔和TokenHelper並在Fiddler中看到,需要以下兩種方式使用:POST的URL構造以及該POST的標題中的資源值。
所以帖子的網址如下:
accounts.accesscontrol.windows.net/{realm ID} /標記/的OAuth/2
我們的資源價值是這樣的:
資源= 00000003-0000-0ff1-ce00-000000000000%2F {境界URL}%40 {境界ID}
這至少連接好,接受我們的POST。不幸的是,我們收到以下消息:
ACS50012:驗證失敗。 ACS90011:領域'不是當前服務名稱空間的配置領域。
此消息使我認爲可能存在配置問題,但我確實無法確定。
是否有其他人嘗試過在Objective-C中對365網站執行OAuth並取得成功?
我也可以發佈代碼,但我最初試圖迴避。
我周圍的POST內容的一些問題,所以我分享我可以 - 很明顯,我不能透露客戶端ID或祕密。 [ URL:accounts。accesscontrol.windows.net/e8f0027b-39c8-49a0-8fce-bb606a118df8/tokens/OAuth/2,Header: Content-Type = application/x-www-form-urlencoded,Body:grant_type = authorization_code&client_id = {client id}&client_secret = {client secret}&redirect_uri = {uri}&resource = 00000003-0000-0ff1-ce00-000000000000%2Fthreewill.sharepoint.com%40e8f0027b-39c8-49a0-8fce-bb606a118df8] –
嗨,你能解決這個問題嗎?請分享您的解決方案。 –
實際上,我還沒有解決這個問題。儘管如此,我會盡力在本週或下一次重溫。微軟開放技術團隊最近發佈了針對Android的O365的API,所以顯然它是可行的 - 我將嘗試通過該解決方案來查看。 –