क्या किसी को निम्नलिखित कर्ल कॉल/ओथ अनुरोध का निर्माण करने में कोई समस्या दिखाई देती है?
तो मैं निम्नलिखित कर्ल कॉल बोल रहा हूँ (मैं तो मैं मेरे ऐप समाप्त कर सकते हैं एक सही ढंग से सेटअप अनुरोध प्राप्त करने के लिए कोशिश कर रहा हूँ):कर्ल, ट्विटर ओथ समस्या
C:\>curl -v -k --data-urlencode "status=Testing2" -H "Authorization: OAuth realm='', oauth_nonce=1276107867blah, oauth_timestamp=1276107867, oauth_consumer_key=yJDLH7BDdVi1OKIINSV7Q, oauth_signature_method=HMAC-SHA1, oauth_version=1.0, oauth_signature=NWU4MDdlNjk0OGIxYWQ1YTkyNmU5YjU1NGYyOTczMmU5ZDg5
YWNkNA ==, staus = Testing2 "http://twitter.com/statuses/update.xml?status=Testing2
और मैं इस प्राप्त:
01,235,164:* About to connect() to twitter.com port 80 (#0)
* Trying 168.143.162.68... connected
* Connected to twitter.com (168.143.162.68) port 80 (#0)
> POST /statuses/update.xml?status=Testing2 HTTP/1.1
> User-Agent: curl/7.20.1 (i386-pc-win32) libcurl/7.20.1 OpenSSL/0.9.8n zlib/1.2.5 libidn/1.18 libssh2/1.2.5
> Host: twitter.com
> Accept: */*
> Authorization: OAuth realm='', oauth_nonce=1276106370blah, oauth_timestamp=1276106370, oauth_consumer_key=yJDLH7BDdVi1OKIINSV7Q, oauth_signature_method=HMAC-SHA1, oauth_version=1.0, oauth_signature=MjQzNDA1MGU4NGRmMWVjMzUwZmQ4YzE5NzMzY2I1ZDJlOTRkNmQ2Zg==, staus=Testing2
> Content-Length: 15
> Content-Type: application/x-www-form-urlencoded
>
< HTTP/1.1 401 Unauthorized
< Date: Wed, 09 Jun 2010 18:00:22 GMT
< Server: hi
< Status: 401 Unauthorized
< WWW-Authenticate: Basic realm="Twitter API"
< X-Runtime: 0.00548
< Content-Type: application/xml; charset=utf-8
< Content-Length: 164
< Cache-Control: no-cache, max-age=1800
< Set-Cookie: k=209.234.229.21.1276106420885412; path=/; expires=Wed, 16-Jun-10 18:00:20 GMT; domain=.twitter.com
< Set-Cookie: guest_id=127610642214871948; path=/; expires=Fri, 09 Jul 2010 18:00:22 GMT
< Set-Cookie: _twitter_sess=BAh7CDoPY3JlYXRlZF9hdGwrCIm33h0pAToHaWQiJTkyMjllODE0NTdiYWE1%250AMWU1MzBmNjgwMTFiMDhkYjdlIgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVy%250AOjpGbGFzaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA--8ebb3c62d461d28f8fda7b8adab642af66969f7e; domain=.twitter.com; path=/
< Expires: Wed, 09 Jun 2010 18:30:20 GMT
< Vary: Accept-Encoding
< Connection: close
<
<?xml version="1.0" encoding="UTF-8"?>
<hash>
<request>/statuses/update.xml?status=Testing2</request>
<error>Could not authenticate with OAuth.</error>
</hash>
* Closing connection #0
मेरी पैरामीटर इसलिए की तरह सेटअप कर रहे हैं
var parameters = [encodeURIComponent("status="+status),encodeURIComponent("oauth_token="+ac_token),encodeURIComponent("oauth_consumer_key="+"yJDLH7BDdVi1OKIINSV7Q"),encodeURIComponent("oauth_nonce="+nonce,"oauth_signature_method=HMAC-SHA1"),encodeURIComponent("oauth_timestamp="+timestamp),encodeURIComponent("oauth_version=1.0")]
var join = parameters.join("&");
var eparamjoin =encodeURIComponent(join);
कुंजी तो की तरह है:
var key=con_secret+"&"+ac_secret;
हस्ताक्षर आधार स्ट्रिंग है:
POST&http%3A%2F%2Ftwitter.com%2Fstatuses%2Fupdate.xml&status%253DTesting2%26oauth_token%253D142715285-yi2ch324S3zfyKyJby6WDUZOhCsiQuKNUtc3nAGe%26oauth_consumer_key%253DyJDLH7BDdVi1OKIINSV7Q%26oauth_nonce%253D1276107867blah%26oauth_timestamp%253D1276107867%26oauth_version%253D1.0
और हस्ताक्षर इसलिए की तरह बनाया गया:
var signaturebs = "POST&"+encodeURIComponent(url)+"&"+eparamjoin;
इस दे
var hmac = Crypto.HMAC(Crypto.SHA1, signaturebs,key);
var signature=Base64.encode(hmac);
हस्ताक्षर बनाने:
NWU4MDdlNjk0OGIxYWQ1YTkyNmU5YjU1NGYyOTczMmU5ZDg5YWNkNA==
किसी भी मदद की सराहना की जाएगी धन्यवाद!
धन्यवाद हाँ यह कुछ चीजें थी, यूआरएल, और मेरा हेडर पिछले ओथ के बजाय दूसरे पैरामीटर में संस्करण रखना चाहता था। अंत में यह काम कर रहा है! इस पर मंच मेरे मुद्दे से मुक्त हैं धन्यवाद – Darxval