我几天来一直在努力尝试让这个身份验证与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 2_AboutToCreateSignature.jpg 2_AboutToCreateSignature_2.jpg 3_AboutToCreateSignatureBase.jpg 4_AboutToEncodeEachKeyAndValue.jpg 6_AboutToSortEncodedParamList.jpg 7_ParamListIsSorted.jpg 8_AboutToNormalizeTheSortedParamList.jpg 9_SortedParamListIsNowNormalized.jpg 10_ShowingMyUrlEncodeMethodHere.jpg 11_BaseSignatureStringCreated.jpg 12_SigningTheHMACSHA1.jpg 13_ConvertingToHash.jpg 14_Hashed.jpg 15_ReturnFinalSignature.jpg 16_AboutToGetAuthHeaderParamsNormalizedForRequestHeader.jpg 16_AboutToGetAuthHeaderParamsNormalizedForRequestHeader_2.jpg 17_ParamsAreNormalizedForRequestHeader.jpg 18_AboutToSendAPIRequestToGetAllCases.jpg 19_AboutToCreateTheHttpWebRequest.jpg 20_AboutToAddHeadersToRequest.jpg 20_AboutToAddHeadersToRequest_2.jpg 21_AboutToSendTheRequest.jpg 22_ViewOfRequestInfoBeforeSending.jpg 23_Response401Error.jpg 24_Fiddler_RequestDetails.jpg 24_Fiddler_RequestDetails_2.jpg 24_Fiddler_RequestDetails_3.jpg 24_Fiddler_RequestDetails_4.jpg
答案 0 :(得分:0)
99%的时间,签名无效意味着您的签名基本字符串存在问题。让你的代码总是记录这个值,因为你在某个时候需要......
看起来您的基本签名字符串不包含oauth_version参数。您的签名库应包含以oauth_开头的所有参数和任何查询字符串参数(但它看起来不像您在qs中发送任何内容)。
答案 1 :(得分:0)
这是一个相当晚的答案,但如果其他人遇到问题,可能会有所帮助。
您可以使用RestSharp简化desk.com API的使用。我在开始使用OAuth时遇到了一些问题,但是在将RestSharp添加到项目之后,事情变得更加简单了。我为此准备了一个小SDK。它还远未完成,但您可以获取源代码并查看连接是如何建立的: