You have provided the method by which the signature base string is generated, but not the actual result of that. Can you cut-and-paste that here? Without the actual query string or http header that is sent to the server there is no way to debug what's wrong.
For example, this is the result of a properly normalized base string (with consumer_key and oauth_token scrambled):
CODE
GET&http%3A%2F%2Fsocial.yahooapis.com%2Fv1%2Fuser%2FGFERT4345GRDQ7K7H656BOGFFG
%2Fcontacts%3Bcount%3D5&format%3Djson%26oauth_consumer_key%3Ddfe9fdjg19adfdwBN
VRuVkwzJmQ9WVdrOWFrOW5hMADFDSF324NHbzlNQjadfQGSFGSuc3VtZXJADFFdsadFEFiIHb--
%26oauth_nonce%3D265297829%26oauth_signature_method%3DHMAC-SHA1
%26oauth_timestamp%3D1267043189%26oauth_token%3DA%253DvMFCBA.a5QadflkajdfklljA
SDFADSFADdf45mFdXaFgKwgCQCTSTcYITr5u63a3p7hYvGmyO8.MnAgYwa28ZHMt20P5KQHkAkSoJn
Nw9x_kSvZ2rMiu9tZMcj6.wfj0J0vhB6cQmwFnxkJJCmyW1tH68unn5FNOPK9HFeF_hUCYiOehtPDQ
qAGWx8q59ZE5ZTfbOfRCaElCJL5modilFb3SZTdQZpY6HnbJERpXNO8FActQu9hHtxaiXINnJM_RU4
3z1H6A3vgDgWLPpwYX_suy9TAxr2sXStcdBQtHV9ILL5PAk7HapBM2FdNJhvN1exlFi7gFr8ZCh1cf
ibPxrHwiBn6Azy6viQJEzLLAnHsYh3eEvOmLU1Lm_IUIqr5sa.oqIBly092NTPVtR8fJz7any54D0I
.AG0uKjv1JedReiaoiN4hdN9y5nqY7z._Xw5MZ_2mTbGaHXAUmUn_ogyzY.q0GQYbI4A7hZp7j56Ix
L.I7Z4EehN.5fLtL9XBFXCt1slgm4GtGy.N9xHyzCMB9feuTwpg3rTQ6hLfAMbskw43svjBFUSGyeu
IqjIlt.8W5amKIm1Jljz3tyKfkNAzTNgrT6NSjkRQ8NXMq9y6oqe3IHgNvbqndNB82gXT2nNtEuhQB
w3t95UrijWpgU69NPE4lFkiiVOol6AYuec_MyTJPCu093AnVt0.oYJyehxG4rgWmadUH6gQ6U9V9oy
VghFg52pyH9hyp_vjFg6UxDQ0esBkmAfHck8lbEtjkujYgyWvnDFEww34FADh-
%26oauth_version%3D1.0
Please provided the full body of the 401 and 501 responses. The body will tell you further what may be wrong. For example, this is the body of a response that tells you that a token has expired (in pretty-printed JSON format)
CODE
{
"error": {
"lang": "en-US",
"description": "Please provide valid credentials. OAuth oauth_problem=\"token_expired\", realm=\"yahooapis.com\""
}
}
Okay, here is the requested information:
- I am now just trying to make it work with GET contacts
- exact signature base I used to (NOTE: I removed consumerKey intentionally):
GET&http%3A%2F%2Fsocial.yahooapis.com%2Fv1%2Fuser%2FYRLUBNM3DUUDOPLU23O6HHOC7E%2Fcontacts&oauth_consumer_key%3DMyEncodedConsumerKeyGoesHere%26oauth_nonce%3D9898e322-ea97-46f3-a6ac-d230734a60e3%26oauth_signature_method%3DHMAC_SHA1%26oauth_timestamp%3D1271272074%26oauth_token%3DA%253D3_ngKGWejwR2lk0dRhcKIWAFDLrUKClb5TUWZJCb2GjZiyuDwQjlPKnkkid.rUfpK8wduzkpW8f4
evthJmhMf9pzp6gy4j6Oyw5S.r3_NMWT.yuQsX1M5UB9DOzsI5afXks5zjJ6fu4UGqI6EcPmwPsXRD75e
fJTFRNuk3meTQS3VyAkFVNudoocfLwGldBGpV_cbnwtPbP4y6EEafy5iyqj05luLd5VabXgQdGiceq0vG
zsFEGdCNzVeWBy3fcAWuYxWSJPkE_yj_iy9QLMpO7Z47zvgNrepWJUON4u3SBvBJD2EMGx9hM8wlU8TlS
WhaL77tT8X1ZTOWFOjGekf8IzCJUENTxZ4a947tO4.spVtwz7PUG7Suu4v_._rmii0pe603UF_qE14t1Q
Q6iYbFBHuFfk0VIh_qu_LnDINU2f8TFZR5AejcxOMuqwUScIay..ghapUR9N8U6uVG5VhkG.Yys3z8bru
RCEC6oqeiZoM7BulQq_TAFtSYCSI5vw_J83kvJ9_5bo1H_Bm0_JjBzh4L.tjWqSaKa78vFihVRLuOwk.h
R6q2UXmtTBjdJghZsUbG5vncIcdlipEKdc6OMFlTuy85kRP.5iksIgkWZ3BmhKZMjHrDjIuUZ_.RsOaxa
nDXlCyEKY8Is7A0zwl7Z2DGUBw2i2DJJYd98B6HGmUMMdBI5mDvjmlxvV48I_0yA-%26oauth_version%3D1.0
- And here is the exact request headers sent:
Authorization: OAuth realm="yahooapis.com", oauth_consumer_key="MyConsumerKeyGoesInHere", oauth_signature_method="HMAC_SHA1", oauth_timestamp="1271272074", oauth_nonce="9898e322-ea97-46f3-a6ac-d230734a60e3", oauth_version="1.0", oauth_token="A%3D3_ngKGWejwR2lk0dRhcKIWAFDLrUKClb5TUWZJCb2GjZiyuDwQjlPKnkkid.rUfpK8wduzkpW8f4ev
thJmhMf9pzp6gy4j6Oyw5S.r3_NMWT.yuQsX1M5UB9DOzsI5afXks5zjJ6fu4UGqI6EcPmwPsXRD75efJ
TFRNuk3meTQS3VyAkFVNudoocfLwGldBGpV_cbnwtPbP4y6EEafy5iyqj05luLd5VabXgQdGiceq0vGzs
FEGdCNzVeWBy3fcAWuYxWSJPkE_yj_iy9QLMpO7Z47zvgNrepWJUON4u3SBvBJD2EMGx9hM8wlU8TlSWh
aL77tT8X1ZTOWFOjGekf8IzCJUENTxZ4a947tO4.spVtwz7PUG7Suu4v_._rmii0pe603UF_qE14t1QQ6
iYbFBHuFfk0VIh_qu_LnDINU2f8TFZR5AejcxOMuqwUScIay..ghapUR9N8U6uVG5VhkG.Yys3z8bruRC
EC6oqeiZoM7BulQq_TAFtSYCSI5vw_J83kvJ9_5bo1H_Bm0_JjBzh4L.tjWqSaKa78vFihVRLuOwk.hR6
q2UXmtTBjdJghZsUbG5vncIcdlipEKdc6OMFlTuy85kRP.5iksIgkWZ3BmhKZMjHrDjIuUZ_.RsOaxanD
XlCyEKY8Is7A0zwl7Z2DGUBw2i2DJJYd98B6HGmUMMdBI5mDvjmlxvV48I_0yA-", oauth_signature="SignatureGoesInHere"
Accept: application/json
This is what the response code is:
The remote server returned an error: (401) Unauthorized.
Exception.Status = ProtocolError
Response Headers returned are:
Vary: Accept-Encoding
Age: 0
Transfer-Encoding: chunked
Connection: keep-alive
Content-Type: application/json
Date: Wed, 14 Apr 2010 19:16:35 GMT
Server: YTS/1.18.4
Via: HTTP/1.1 r5.ycpi.mud.yahoo.net (YahooTrafficServer/1.18.4 [cMsSf ])
WWW-Authenticate: OAuth oauth_problem="signature_method_rejected", realm="yahooapis.com"
Does this make any sense??