TitaniumMobileで簡単にTwitterのOAuthを通すことが出来る(というふれこみの)oauth-adapterというのがあって。
実際この記事通りにするとあっという間にtwitterにつぶやくことが出来る。
Twitter oAuth Implementation for Titanium Mobile « Appcelerator Developer Center
問題なのはその先で。このコード、どうやらPOSTしかできないので、updateはできるけどhome_timelineがとれないみたい。
@chris4403がoauth-adapterを直してはてなAPIで動くようにしたtitanium-hatena-oauth-sampleを参考に、TwitterのGETメソッドも使えるoauth-adapterに直してみた。
sendメソッドだけ、元のコードと引数が違います。
- params.url APIのエンドポイント
- params.parameters APIに渡す引数
- params.title 成功/失敗の時に出すダイアログのタイトル
- params.successMessage 成功した時に出すメッセージ
- params.errorMessage エラーだった時に出すメッセージ
- params.method ‘POST’/’GET’
つぶやく
//initialization
Ti.include('lib/oauth_adapter.js');
var oAuthAdapter = new OAuthAdapter(
'YOUR_CONSUMER_SECRET_HERE',
'YOUR CONSUMER KEY HERE',
'HMAC-SHA1'
);
// load the access token for the service (if previously saved)
oAuthAdapter.loadAccessToken('twitter');//OAuth if need.
if (oAuthAdapter.isAuthorized() == false)
{
var receivePin = function() {
oAuthAdapter.getAccessToken('https://api.twitter.com/oauth/access_token');
oAuthAdapter.saveAccessToken('twitter');
};
// show the authorization UI and call back the receive PIN function
oAuthAdapter.showAuthorizeUI('https://api.twitter.com/oauth/authorize?' +
oAuthAdapter.getRequestToken('https://api.twitter.com/oauth/request_token'), receivePin);
}//TWEET
oAuthAdapter.send({
url:'https://api.twitter.com/1/statuses/update.json',
parameters:[
['status', '@mogyatest test from tmtwit. '+Math.random()]
],
method:'POST',
title:'Twitter',
successMessage:'tweeted',
errorMessage:'tweet failed'
});
GET TIMELINE
//same code for initialization and authrization.
//get timeline
var responce = oAuthAdapter.send({
url:'https://api.twitter.com/1/statuses/home_timeline.json',
parameters:[
],
method:'GET',
title:'Twitter',
successMessage:'success',
errorMessage:'failed'
});if (responce){
Ti.API.debug(responce);
responce = JSON.parse(responce);
//Enjoy with this responce:-)
}