The problem is that the last time I did Java (this is Java, right?) was ages ago (I was 12 back then) so I don't really know what the code is doing. The code looks fine to me, but like I said, I don't know Java very well.
Can you show the actual request you make, instead of code? Like the "POST /1/statuses/update.json HTTP/1.1" part. Also include the base string which you use. Tom On 8/18/10 12:38 PM, LINUXGEEK wrote: > Thanks for the replay i was waiting for your replay > > here is my post body > > String postBody = "status=" > + URLUTF8Encoder.encode("Test message"); > > here is the base String > > String baseString = "POST&" > + URLUTF8Encoder > > .encode("http://api.twitter.com/1/statuses/update.json") > + "&oauth_consumer_key%3D" + "my consumer key" > + "%26oauth_nonce%3D"+oauth_nonce+"a" > + > "%26oauth_signature_method%3D"+oauth_signature_method > + "%26oauth_token%3D"+auth_token > + "%26oauth_timestamp%3D"+oauth_timestamp > + "%26oauth_version%3D"+oauth_version + "%26" > + URLUTF8Encoder.encode(postBody); > > > > String signingSecret = URLUTF8Encoder.encode("my Secret key")+ "&" + > URLUTF8Encoder.encode("auth_secret"); > > > > here is my signature > > String signature = URLUTF8Encoder.encode(hmacsha1(signingSecret, > baseString)); > > here is my header > > > String header = new StringBuffer("OAuth oauth_nonce=\"").append( > oauth_nonce).append( > "\", oauth_signature_method=\"").append( > oauth_signature_method).append( > "\", oauth_timestamp=\"").append( > oauth_timestamp).append( > "\", oauth_consumer_key=\"").append("my > consumer key") > .append("\",oauth_token=\"").append( > token.getToken()).append( > "\", > oauth_signature=\"").append( > signature).append( > "\", > oauth_version=\"").append(oauth_version).append( > "\"").toString(); > > > > > > one more question here > when i am making the http request do i need to write the post body to > the outputStream.. > > and tell me what should i change in the above code... > > On Aug 18, 3:28 pm, Tom van der Woerdt <i...@tvdw.eu> wrote: >> Hi, >> >> That's a lot of code, but I prefer to know what it is doing over the >> actual code. So: can you post a request which you make to Twitter, and >> can you give the Base String which you use for generating the signature? >> >> Tom >> >> On 8/18/10 8:08 AM, LINUXGEEK wrote: >> >>> private void StatusUpdate() throws CryptoTokenException, >>> CryptoUnsupportedOperationException, IOException { >> >>> String oauth_signature_method = "HMAC-SHA1"; >>> String oauth_timestamp = String.valueOf(timestamp()); >>> String oauth_nonce = createNonce(oauth_timestamp); >>> String oauth_version = "1.0"; >> >>> String postBody = "status=" >>> + URLUTF8Encoder.encode("Finally i got success"); >> >>> String baseString = "POST&" >>> + URLUTF8Encoder >>> >>> .encode("https://api.twitter.com/1/statuses/update.json") >>> + "&oauth_consumer_key%3D" + "my consumer key" >>> + "%26oauth_nonce%3D" + oauth_nonce >>> + "%26oauth_signature_method%3D" + >>> oauth_signature_method >>> + "%26oauth_token%3D" + token.getToken() >>> + "%26oauth_timestamp%3D" + oauth_timestamp >>> + "%26oauth_version%3D" + oauth_version + "%26" >>> + URLUTF8Encoder.encode(postBody); >>> String signingSecret = URLUTF8Encoder >>> .encode("my consuer Secret") >>> + "&" + URLUTF8Encoder.encode(token.getSecret()); >>> String signature = hmacsha1(signingSecret, baseString); >>> Dialog.alert(signature); >>> String header = new StringBuffer("OAuth oauth_nonce=\"").append( >>> URLUTF8Encoder.encode(oauth_nonce)).append( >>> "\", oauth_signature_method=\"").append( >>> >>> URLUTF8Encoder.encode(oauth_signature_method)).append( >>> "\", oauth_timestamp=\"").append( >>> URLUTF8Encoder.encode(oauth_timestamp)).append( >>> "\", oauth_consumer_key=\"").append("my consumer >>> key") >>> .append("\",oauth_token=\"").append( >>> >>> URLUTF8Encoder.encode(token.getToken())).append( >>> "\", oauth_signature=\"").append( >>> >>> URLUTF8Encoder.encode(signature)).append( >>> "\", >>> oauth_version=\"").append(oauth_version).append( >>> "\"").toString(); >>> UpdateMyNewStatus(header, postBody); >>> } >> >>> public static void UpdateMyNewStatus(String auth_header, String body) >>> { >>> String url = "http://api.twitter.com/1/statuses/update.json"; >>> HttpConnection httpConn = null; >>> InputStream input = null; >>> OutputStream os = null; >>> try { >> >>> httpConn = (HttpConnection) Connector.open(url >>> + >>> ConnectionUtils.getConnectionPerameter()); >>> >>> httpConn.setRequestMethod(HttpProtocolConstants.HTTP_METHOD_POST); >>> httpConn.setRequestProperty("WWW-Authenticate", >>> "OAuth realm=http://twitter.com/"); >>> httpConn.setRequestProperty("Content-Type", >>> "application/x-www-form-urlencoded"); >>> String authHeader = auth_header; >>> httpConn.setRequestProperty("Authorization", authHeader); >> >>> // write post body >>> String postBody = body; >>> httpConn.setRequestProperty("Content-Length", Integer >>> .toString(postBody.getBytes().length)); >>> os = httpConn.openOutputStream(); >>> os.write(postBody.getBytes()); >>> os.close(); >>> os = null; >> >>> input = httpConn.openDataInputStream(); >> >>> int resp = httpConn.getResponseCode(); >>> Dialog.alert(httpConn.getResponseMessage()); >> >>> if (resp == HttpConnection.HTTP_OK) { >> >>> StringBuffer buffer = new StringBuffer(); >>> int ch; >>> while ((ch = input.read()) != -1) { >>> buffer.append((char) ch); >>> } >>> String content = buffer.toString(); >>> Dialog.alert(content); >>> } >> >>> } catch (Exception e) { >>> } finally { >>> try { >>> httpConn.close(); >>> input.close(); >>> } catch (IOException e) { >>> e.printStackTrace(); >>> } >>> } >>> } >> >>> i am using the above code.. >> >>> On Aug 17, 7:24 pm, Tom van der Woerdt <i...@tvdw.eu> wrote: >>>> On 8/17/10 1:47 PM, LINUXGEEK wrote: >> >>>>> can any one help in updating the status of my twitter account by using >>>>> auth token and secret. >> >>>>> am getting 401 error while doing this.. >> >>>>> can any one give me code for updating the status. >> >>>> I could give you pseudocode, yes, but that will most likely be useless >>>> to you. >> >>>> Assuming that you know how to program a HTTP socket, what is the request >>>> you make to twitter before getting this 401 error, and what is the base >>>> string you use to generate the signature? >> >>>> Tom >> >>>> PS: People have said that I never mention the existence of libraries. >>>> So, here I go:http://dev.twitter.com/pages/oauth_libraries >>>> PPS: I dislike libraries.