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 <[email protected]> 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 <[email protected]> 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.