无法通过Desk.com获取401错误OAuth

时间:2012-03-01 07:18:23

标签: c# oauth

我几天来一直在努力尝试让这个身份验证与Desk.com的API http://dev.desk.com/一起使用。我甚至试过使用像https://github.com/buildmaster/oauth-mvc.net#readme那样分叉的框架,但我仍然得到401错误......我永远无法授权。

我不能再去另一天这个没有用了......已经花了几天时间就已经开始了......这就是我在这里的所有自定义代码,我一直在绞尽脑汁试图弄清楚为什么要Desk.com拒绝我第一次尝试向他们发出API调用。

Desk.com说它必须是我的签名,但我一遍又一遍地检查我的签名,我觉得签名不是问题。我甚至尝试使用oauth-mvc.net并使用他们的实用程序创建我的签名(https://github.com/buildmaster/oauth-mvc.net#readme),当使用该框架创建sig时,我仍然得到401。所以我不能确定这是签名,在我如何形成请求时,它必须是一些简单的愚蠢......我不确定。

所以这是我的代码..我无法看到我的生活有什么不对。只需按照它,就好像你在调试我一样。 (仅供参考,如果您看不到它,请右键单击图像并选择查看它以查看完整图片。)

1_UnitTestStart.jpg enter image description here 2_AboutToCreateSignature.jpg enter image description here 2_AboutToCreateSignature_2.jpg enter image description here 3_AboutToCreateSignatureBase.jpg enter image description here 4_AboutToEncodeEachKeyAndValue.jpg enter image description here 6_AboutToSortEncodedParamList.jpg enter image description here 7_ParamListIsSorted.jpg enter image description here 8_AboutToNormalizeTheSortedParamList.jpg enter image description here 9_SortedParamListIsNowNormalized.jpg enter image description here 10_ShowingMyUrlEncodeMethodHere.jpg enter image description here 11_BaseSignatureStringCreated.jpg enter image description here 12_SigningTheHMACSHA1.jpg enter image description here 13_ConvertingToHash.jpg enter image description here 14_Hashed.jpg enter image description here 15_ReturnFinalSignature.jpg enter image description here 16_AboutToGetAuthHeaderParamsNormalizedForRequestHeader.jpg enter image description here 16_AboutToGetAuthHeaderParamsNormalizedForRequestHeader_2.jpg enter image description here 17_ParamsAreNormalizedForRequestHeader.jpg enter image description here 18_AboutToSendAPIRequestToGetAllCases.jpg enter image description here 19_AboutToCreateTheHttpWebRequest.jpg enter image description here 20_AboutToAddHeadersToRequest.jpg enter image description here 20_AboutToAddHeadersToRequest_2.jpg enter image description here 21_AboutToSendTheRequest.jpg enter image description here 22_ViewOfRequestInfoBeforeSending.jpg enter image description here 23_Response401Error.jpg enter image description here 24_Fiddler_RequestDetails.jpg enter image description here 24_Fiddler_RequestDetails_2.jpg enter image description here 24_Fiddler_RequestDetails_3.jpg enter image description here 24_Fiddler_RequestDetails_4.jpg enter image description here

2 个答案:

答案 0 :(得分:0)

99%的时间,签名无效意味着您的签名基本字符串存在问题。让你的代码总是记录这个值,因为你在某个时候需要......

看起来您的基本签名字符串不包含oauth_version参数。您的签名库应包含以oauth_开头的所有参数和任何查询字符串参数(但它看起来不像您在qs中发送任何内容)。

答案 1 :(得分:0)

这是一个相当晚的答案,但如果其他人遇到问题,可能会有所帮助。

您可以使用RestSharp简化desk.com API的使用。我在开始使用OAuth时遇到了一些问题,但是在将RestSharp添加到项目之后,事情变得更加简单了。我为此准备了一个小SDK。它还远未完成,但您可以获取源代码并查看连接是如何建立的:

http://danielsaidi.github.com/desk-csharp-sdk/