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.

Reply via email to