2014-10-09 96 views
0

我已經創建了一個C#.NET客戶端,用於與Adobe的SiteCatalyst/Omniture/Reporting 1.4 REST API進行接口(Lord知道爲什麼他們必須擁有同樣的名字) API支持的功能的百分比,我想將其作爲公共NuGet包發佈,但我遇到了身份驗證問題。SiteCatalyst/Omniture報告REST API身份驗證

我已經在他們的文檔(包括設置應用程序等)中進行了認證,在此陳述了 - https://marketing.adobe.com/developer/en_US/documentation/authentication/auth-client-credentials#concept_5190CB12025F4B29947AB2CF13435C9C - 並嘗試了我所知道的任何方式來進行認證請求,因爲他們描述並始終接收回錯誤說我沒有發送grant_type。我試着將它作爲查詢字符串參數,標題,URL編碼的POST,JSON POST和4的所有可能的組合發送。所有這些都返回相同的錯誤。

我也使用招捕捉請求,而使用他們的文檔中列出的捲曲聲明嘗試:

$ curl -i -v "https://api.omniture.com/token" -u 'YOUR_CLIENT_ID:YOUR_CLIENT_SECRET' -d "grant_type=client_credentials" 

不幸的是,當我執行這個使用Windows捲曲,它只是吹了說,它不能驗證SSL證書。

如果有人可以告訴我成功認證的請求是什麼樣的(頭部,身體等等 - 雖然你可以去除證書),但我可以完成NuGet包,讓它可以供大家使用輕鬆地與.NET中的Adobe Reporting API進行交互。

在此先感謝您的任何幫助或建議!

-Ben

+0

從我的愚蠢問題。你做了步驟1-3來設置/獲得有效的ID /祕密信用?您是否使用請求中的真實值替換了'YOUR_CLIENT_ID:YOUR_CLIENT_SECRET' – 2014-10-11 23:27:39

+0

也針對您的測試與ssl證書問題,您可以嘗試[忽略ssl身份驗證](http://unix.stackexchange.com/questions/60750/does- curl-have-a-no-check-certificate-option-like-wget)用於測試目的 – 2014-10-11 23:30:07

回答

0

作爲測試而回我用這個HTML形式做在OA2握手此步驟。

<FORM action="https://api.omniture.com/token" method="post"> 
<P> 
<LABEL for="grant_type">grant_type: </LABEL> 
      <INPUT type="text" name="grant_type" value="authorization_code"><BR> 
<LABEL for="code">code: </LABEL> 
      <INPUT type="text" name="code" value="a77911ad9d0adf28f215577d7f05cda52fae8721"><BR> 
<LABEL for="client_id">client_id: </LABEL> 
      <INPUT type="text" name="client_id" value="com.cdegroot.OA2.test1"><BR> 
<LABEL for="client_secret">client_secret: </LABEL> 
      <INPUT type="text" name="client_secret" value="4169edfc847e77cfb35b"><BR> 
<LABEL for="redirect_uri">redirect_uri: </LABEL> 
      <INPUT type="text" name="redirect_uri" value="http://localhost:9099"><BR> 
<INPUT type="submit" value="Send"> 
</P> 

這應該給你一些指點到它是如何工作的。

謝謝C>