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.