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