0

401, signature_invalid, contacts matrix parameter not working

I have been trying to get the contact list of an user. As mentioned in the document, http://social.yahooapis.com/v1/user/{guid}/contacts returns first 10 contacts by default. this works fine for me.

But when I add count matrix parameter it doesn't work. it gives me 401 signature_invalid. In-fact, it doesn't work with any matrix parameter.


I am using QOAuth library in Qt 4.5.3.


When I try with the following url to get contacts:

CODE
"http://social.yahooapis.com/v1/user/VLEJ4DO33623P4PMSA2R4FEBF4/contacts"


QOAuth uses the following string as a signature base:

CODE
"GET&http%3A%2F%2Fsocial.yahooapis.com%2Fv1%2Fuser%2FVLEJ4DO33623P4PMSA2R4FEBF4%2Fcontacts&oauth_consumer_key%3Ddj0yJmk9aDlwdDBjc3pIaE1pJmQ9WVdrOVdWYzRUWHBGTldNbWNHbzlOVFl6T1RFNE16QXkmcz1jb2
5zdW1lcnNlY3JldCZ4PTQ1%26oauth_nonce%3D6a27b3b8dd3b6bef57b58938d7662499%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1265298014%26oauth_token%3DA%253DP7tBir7x4QVRuQi2uqnmb075RxF_rRk2XzhtGhE5CfrcsrnT0BxVZMc_eg32oyMxDjZveO7Gcadt
9gIDSzNd7Te1WrkI_1T_OU2CjvZjjp6ClR0vWwZHIGWqjPJw4Z8WMAqKwBWc3VIS0WSwNhz5flWJ4My9O
157g0ativ3HoFEH0FSRfYxKeBLbpnAaZ4vpPII8uExFm3OeGODnQXPTL9.rFy2rjdbERTir82zj2M7PwN
sKIm39N9zGos3fl2U03N4KIlF0kpSODhIvP1sx5EXBAToOz9k1TqYTxsXq746g77xSh9hNUrc9fysZRNp
buLBgWQ8l2IYIy35c6fmxWO5td6KDBZ1ID2S6oWxyysXd17lPtYV_0NxXbj8sfOQyZhFg6CbRCCH_Jz9a
4d6NAIW9LFznk2gM_5pVjZKqSGHAg.znXIF2tXiDJzMrQCsdPUiryjXaoec31HFkwdt7RhcMu8RwlAYEX
fr876KaPFWnXcy25er9gddPDhPE2yYiBLcqd42YrHXxY00EJKTwlmN8HJI10YVhvCTJ0cz2.nrefwKvxH
cf6wAd0JMw16MtZuhbGEw6cguMKp8Uqy2TvIwagS1CRVWlyjIekV0GfzmgzRVjtn7VNDedCuoTScaEIQd
tZaxTpDGaHug2nAeUFB722rJrl0pgwc8ytZvLX1AHJMfulr3zcrblBdWNkpxx25cNZY48cJNNoPM3CsuC
OB19ccrMbWAKTUGnLKK.XA67EQWZ%26oauth_version%3D1.0"


Generates the following signature:
CODE
"iIRd7fNXOINdSPl0IEYaKPRtIFo%3D"



And the header looks like this:

CODE
"OAuth oauth_consumer_key="dj0yJmk9aDlwdDBjc3pIaE1pJmQ9WVdrOVdWYzRUWHBGTldNbWNHbzlOVFl6T1RFNE16QXkmcz1j
b25zdW1lcnNlY3JldCZ4PTQ1",oauth_nonce="6a27b3b8dd3b6bef57b58938d7662499",oauth_signature="iIRd7fNXOINdSPl0IEYaKPRtIFo%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1265298014",oauth_token="A%3DP7tBir7x4QVRuQi2uqnmb075RxF_rRk2XzhtGhE5CfrcsrnT0BxVZMc_eg32oyMxDjZveO7Gcadt9g
IDSzNd7Te1WrkI_1T_OU2CjvZjjp6ClR0vWwZHIGWqjPJw4Z8WMAqKwBWc3VIS0WSwNhz5flWJ4My9O15
7g0ativ3HoFEH0FSRfYxKeBLbpnAaZ4vpPII8uExFm3OeGODnQXPTL9.rFy2rjdbERTir82zj2M7PwNsK
Im39N9zGos3fl2U03N4KIlF0kpSODhIvP1sx5EXBAToOz9k1TqYTxsXq746g77xSh9hNUrc9fysZRNpbu
LBgWQ8l2IYIy35c6fmxWO5td6KDBZ1ID2S6oWxyysXd17lPtYV_0NxXbj8sfOQyZhFg6CbRCCH_Jz9a4d
6NAIW9LFznk2gM_5pVjZKqSGHAg.znXIF2tXiDJzMrQCsdPUiryjXaoec31HFkwdt7RhcMu8RwlAYEXfr
876KaPFWnXcy25er9gddPDhPE2yYiBLcqd42YrHXxY00EJKTwlmN8HJI10YVhvCTJ0cz2.nrefwKvxHcf
6wAd0JMw16MtZuhbGEw6cguMKp8Uqy2TvIwagS1CRVWlyjIekV0GfzmgzRVjtn7VNDedCuoTScaEIQdtZ
axTpDGaHug2nAeUFB722rJrl0pgwc8ytZvLX1AHJMfulr3zcrblBdWNkpxx25cNZY48cJNNoPM3CsuCOB
19ccrMbWAKTUGnLKK.XA67EQWZ",oauth_version="1.0""
("Authorization")


With this above header, I can get only first 10 contacts.


But when I try with matrix parameter count=20 i.e. with the URL
CODE
"http://social.yahooapis.com/v1/user/VLEJ4DO33623P4PMSA2R4FEBF4/contacts?count=20"


QOAuth uses following signature base string to generate HMAC-SHA1 signature:
CODE
"GET&http%3A%2F%2Fsocial.yahooapis.com%2Fv1%2Fuser%2FVLEJ4DO33623P4PMSA2R4FEBF4%2Fcontacts%3Fcount%3D20&oauth_consumer_key%3Ddj0yJmk9aDlwdDBjc3pIaE1pJmQ9WVdrOVdWYzRUWHBGTldNbWNHbzlOVFl6T1RFNE16QXkmcz1jb2
5zdW1lcnNlY3JldCZ4PTQ1%26oauth_nonce%3D3181d30b0c799603a18b300857506323%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1265298105%26oauth_token%3DA%253D6u4cayqGsQ9q294OAtS9h5JJsls3Vpfbe7tlk545BsPDD8_kFJWqBansOGpM56UhOtlFO4dzsd8B
J.iZzPtgxNPoparHZhIM4K.3UrKC3LEAFzOwo0mxCIK8RIUyqN_31UfNbr8mtuKJ3oR12z6bqYTPat9bm
a3wZiT9qMAyppoqzEwmDvq3zqR8zANaf4F468GVI67KEUn0vYvaKcWkTDQ0dBjduyHwiBW9Zv2wtX6pVd
BZyzg5DwF_HJwczIUP79LMk48f.KymuTHCB5Gy6Kfqj1ZUuXNdrN0QcKBtwFzOT.d0TsalyMuXvHkCkp8
iaKzmkd.K2z.uA_PRPXw09le35EyUdwE3KnCIjKLaEBgxfQC5GVimyPg7vIDhw9Z7EYwh1z6hxAp8UqAi
EdyJPv4e78UYot6SCb16MvPzNEWNWjNHnW_CN7UvVGU.Ntae7vxkCfZi6wJQA34v99__M1g7HCnNO6JSZ
WpqcpYKlCiXZf9C_Tt6TpJC.NZURwefF1OIejSx3DAcdrp1lj8yTVAAqgK2vtyPAZOdZRVeLIhspBPUkh
Dc55vI9ZiN0rk.3pbwLTKEvzmWPxVBzTFCNJ8W5KocDf0SXQ7lLyKQB3bwDp84kOOHNckd0X2Frr6fbHU
KnbzmoXOjrM4h3_KX1BR3VcYylbbVgjkWQuZX_B34Q4WE0ixguTb.skU29mZfHNFSkEM4lWoCrVGiFpmR
dyLgMPEIXENqR7fymYqmiJE2rN0J%26oauth_version%3D1.0"


Generate the following signature:
CODE
"4basO7P7ZYrRTAW5v7pvj%2BdDXBU%3D"


and the header looks like this:

CODE
"OAuth oauth_consumer_key="dj0yJmk9aDlwdDBjc3pIaE1pJmQ9WVdrOVdWYzRUWHBGTldNbWNHbzlOVFl6T1RFNE16QXkmcz1j
b25zdW1lcnNlY3JldCZ4PTQ1",oauth_nonce="3181d30b0c799603a18b300857506323",oauth_signature="4basO7P7ZYrRTAW5v7pvj%2BdDXBU%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1265298105",oauth_token="A%3D6u4cayqGsQ9q294OAtS9h5JJsls3Vpfbe7tlk545BsPDD8_kFJWqBansOGpM56UhOtlFO4dzsd8BJ.
iZzPtgxNPoparHZhIM4K.3UrKC3LEAFzOwo0mxCIK8RIUyqN_31UfNbr8mtuKJ3oR12z6bqYTPat9bma3
wZiT9qMAyppoqzEwmDvq3zqR8zANaf4F468GVI67KEUn0vYvaKcWkTDQ0dBjduyHwiBW9Zv2wtX6pVdBZ
yzg5DwF_HJwczIUP79LMk48f.KymuTHCB5Gy6Kfqj1ZUuXNdrN0QcKBtwFzOT.d0TsalyMuXvHkCkp8ia
Kzmkd.K2z.uA_PRPXw09le35EyUdwE3KnCIjKLaEBgxfQC5GVimyPg7vIDhw9Z7EYwh1z6hxAp8UqAiEd
yJPv4e78UYot6SCb16MvPzNEWNWjNHnW_CN7UvVGU.Ntae7vxkCfZi6wJQA34v99__M1g7HCnNO6JSZWp
qcpYKlCiXZf9C_Tt6TpJC.NZURwefF1OIejSx3DAcdrp1lj8yTVAAqgK2vtyPAZOdZRVeLIhspBPUkhDc
55vI9ZiN0rk.3pbwLTKEvzmWPxVBzTFCNJ8W5KocDf0SXQ7lLyKQB3bwDp84kOOHNckd0X2Frr6fbHUKn
bzmoXOjrM4h3_KX1BR3VcYylbbVgjkWQuZX_B34Q4WE0ixguTb.skU29mZfHNFSkEM4lWoCrVGiFpmRdy
LgMPEIXENqR7fymYqmiJE2rN0J",oauth_version="1.0""
("Authorization")


But it gives me following error:

CODE
Reply code:: 401 
Network reply(ERROR):: "<?xml version='1.0' encoding='UTF-8'?>
<yahoo:error xmlns:yahoo='http://yahooapis.com/v1/base.rng'
xml:lang='en-US'>
<yahoo:description>Please provide valid credentials. OAuth oauth_problem="signature_invalid", realm="yahooapis.com"</yahoo:description>
</yahoo:error>
<!-- ws120.socdir.ac4.yahoo.com uncompressed/chunked Thu Feb 4 07:41:25 PST 2010 -->
"
"<?xml version='1.0' encoding='UTF-8'?>
<yahoo:error xmlns:yahoo='http://yahooapis.com/v1/base.rng'
xml:lang='en-US'>
<yahoo:description>Please provide valid credentials. OAuth oauth_problem="signature_invalid", realm="yahooapis.com"</yahoo:description>
</yahoo:error>
<!-- ws120.socdir.ac4.yahoo.com uncompressed/chunked Thu Feb 4 07:41:25 PST 2010 -->



Has anyone faced similar problem? please help.

by
3 Replies
    1. Matrix parameters are delimited with the semicolon, not the question mark character.
      CODE
      "http://social.yahooapis.com/v1/user/VLEJ4DO33623P4PMSA2R4FEBF4/contacts;count=20

    2. The oauth_token that you pass in the two requests are different: the first one starts with "A%3DP7", and the second one starts with "A%3D6u"
      This is strange. Unless the previous oauth_token had expired (you received an error to such an effect), you should be using the same oauth_token in both calls. Since the timestamp between these two calls shows that only a minute had elapsed, it is unlikely that the token had expired. Perhaps you have a mismatch between the oauth_token and the oauth_token_secret which is used to generate the signature in the second call?
    0
  • would you please upload the full source code ????
    0
  • Example oauth code may be found here: http://github.com/joechung/
    0

Recent Posts

in Contacts