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.