2014-10-09 98 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>