I am interested in solving this too.

Let's say Samsung TV is same as desk top. You should be able to use
xAuth.

You need to create a new Twitter app to get Consumer key and Consumer
secret. Make sure you select client method and read/write.

On Dec 6, 1:23 am, "umamahesh G." <g.umamahesh...@gmail.com> wrote:
> HI Tom,
>
> Thanks for your support. I am using javascript for samsung TV Applicaiton
> not for normal browser so there is no way to know about keys and secret
> key.Actually Samsung SDK uses Maple browser and  application runs on  this
> browser.
>
> I hope you help me out from this issue.
>
> Please find the below code.
>
> <html>
> <head>
> &lt;script type ="text/Javascript" language="Javascript"
> src="sha1.js"></script>
> &lt;script type="text/javascript" charset="utf-8">
>
> /*To authorize on Twitter API through xAuth, you need HMAC-SHA1
> I'm using the following lib for that:http://jssha.sourceforge.net
> Make sure you have sha.js included!Also, you need to email
> a...@twitter.comto get xAuth access
> I cannot do that for you - seehttp://dev.twitter.com/pages/xauth
> cross-domain XHRs only work on file:// protocol pages
> use PhoneGap!
> **** */
>
> var TwitterApiRequest = function() {
> this.nonce = this.generateNonce();
> this.timestamp = this.getUTCtimestamp();
>
> this.postBody = null;
> this.signature = null;
> this.signatureBaseString = null;
> this.consumerSecret="MY consumerSecret ";
>
> }
>
> TwitterApiRequest.prototype.generateNonce = function () {
> var nonce = [];
> var length = 6; // arbitrary - looks like a good length
>
> for (length; length > 0; length--)
> nonce.push((((1+Math.random())*0x10000)|0).toString(16).substring(1));
>
> return nonce.join("");
>
> }
>
> // could possibly do without UTC, but here we are
> TwitterApiRequest.prototype.getUTCtimestamp = function ()
> {
> //var currentTime = new Date();
> //var currentUTCTimeInSecs =
> Math.floor(Date.parse(currentTime.toUTCString()) / 1000);
> //return currentUTCTimeInSecs;
> return (new Date((new Date).toUTCString())).getTime() / 1000;
>
> }
>
> // don't forget trailing &!
> //TwitterApiRequest.prototype.consumerSecret =
> "MY consumerSecret ";
>
> TwitterApiRequest.prototype.signatureBaseStringTemplate = "POST&" +
> "https%3A%2F%2Fapi.twitter.com
> <http://2fapi.twitter.com/>%2Foauth%2Faccess_token&"
> + // oauth_path
> "oauth_consumer_key%3DMY CONSUMER KEY%26" +
> "oauth_nonce%3D" + "{{ nonce }}" + "%26" +
> "oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D" + "{{ time }}" +
> "%26" +
> "oauth_version%3D1.0%26" +
> "x_auth_mode%3Dclient_auth%26" +
> "x_auth_password%3D" + "{{ password }}" + "%26" +
> "x_auth_username%3D" + "{{ username }}"
>
> TwitterApiRequest.prototype.authHeaderTemplate = "OAuth " +
> "oauth_nonce=\"" + "{{ nonce }}" + "\", " +
> "oauth_signature_method=\"HMAC-SHA1\", " +
> "oauth_timestamp=\"" + "{{ time }}" + "\", " +
> "oauth_consumer_key=\"MY CONSUMER KEY\", " +
> "oauth_signature=\"" + "{{ signature }}" + "\", " +
> "oauth_version=\"1.0\"";
>
> TwitterApiRequest.prototype.processCredentials = function (user, pw) {
> this.signatureBaseString = this.signatureBaseStringTemplate
> .split("{{ nonce }}").join(this.nonce)
> .split("{{ time }}").join(this.timestamp)
> .split("{{ password
>
> }}").join(encodeURIComponent(pw))
> .split("{{ username
> }}").join(encodeURIComponent(user));
>
> this.postBody = "x_auth_mode=client_auth&" +
> "x_auth_password=" + encodeURIComponent(pw) + "&" +
> "x_auth_username=" + encodeURIComponent(user);
>
> }
>
> TwitterApiRequest.prototype.sign = function ()
> {
> //var shaObj = new jsSHA(base_string, "ASCII");
> //var oauth_signature = shaObj.getHMAC(consumersecret, "ASCII", "B64");
> alert("this.signatureBaseString :"+this.signatureBaseString);
> var hmacGen = new jsSHA(this.signatureBaseString,"ASCII");
> this.signature = hmacGen.getHMAC(this.consumerSecret,"ASCII","B64")+"%3D";
>
> this.authHeader = this.authHeaderTemplate
> .split("{{ nonce }}").join(this.nonce)
> .split("{{ time }}").join(this.timestamp)
> .split("{{ signature }}").join(this.signature);
>
> }
>
> function ajaxrequest()
> {
> var authorizeRequest = new TwitterApiRequest();
> authorizeRequest.processCredentials("suyambu.vikn...@gmail.com",
> "simcard00");
> authorizeRequest.sign();
>
> var twitterUrl = 'https://api.twitter.com/oauth/access_token?'+
> authorizeRequest.postBody;
>
> var req = new XMLHttpRequest();
> alert("this.postBody :" +authorizeRequest.postBody);
> alert("header :"+authorizeRequest.authHeader);
> // sync for testing purposes, not required
> req.open('POST', twitterUrl, false);
> req.setRequestHeader("Authorization", authorizeRequest.authHeader);
> req.send();
> alert("Response :"+req.responseText);
> // should be 200
> //console.log(req.status);
> alert("Status :"+req.status);
> // should look like:
> //
> oauth_token=HERE-IS-MY-AWESOME-TOKEN&oauth_token_secret=THIS-IS-MY-TOKEN-SECRET&
> // user_id=007&screen_name=JamesBond&x_auth_expires=0
> //console.log(req.responseText);
>
> }
>
> </script>
> </head>
>
> <body onLoad="ajaxrequest();">
>
> </body>
> </html>
>
> On Sat, Dec 4, 2010 at 4:35 PM, Tom van der Woerdt <i...@tvdw.eu> wrote:
>
>
>
> > You really shouldn't implement xAuth in JavaScript for obvious reasons,
> > like how impossible it is to keep your keys secret.
>
> > Tom
>
> > On 12/4/10 6:19 AM, mahesh wrote:
>
> >> HI Team,
>
> >> Here i have been getting the following problem.
>
> >> I can able to post the message to twitter using xAuth Protocol in
> >> safari
> >> but i can't from firefox ,samsung tv browser Maple and IE.
>
> >> I am using javascript xmlhttprequest and sha1 for signature.
>
> >> Is twitter send response when we  request from samsung tv
> >> maple browser?.
>
> >> More over when i try to request from samsung tv maple browser
>
> >> i get following Error.
>
> >> Status 401
> >> Response :Failed to validate oauth signature and token
>
> >> If i Run Same code in safari working fine can able to post the
> >> message.
>
> >> Please help me out what is the issue.
>
> >> Thanks in Advance.
>
> > --
> > Twitter developer documentation and resources:http://dev.twitter.com/doc
> > API updates via Twitter:http://twitter.com/twitterapi
> > Issues/Enhancements Tracker:
> >http://code.google.com/p/twitter-api/issues/list
> > Change your membership to this group:
> >http://groups.google.com/group/twitter-development-talk
>
> --
> With Regards
>
>          M A H E S H . . .

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk

Reply via email to