Real Studio用のxAuth Classが出来ましたので、一応公開いたします。
This xAuth Class needs SHA1 Class.
http://www.declareSub.com
direct link
http://www.declaresub.com/article/132/sha1-update
This xAuth Class needs HTTPSecureSocket with REALStudio Pro.
//Sample Code
dim xAuth1 as xAuth
dim xAuthBool as Boolean
dim myoauth_token,myoauth_token_secret as String
xAuth1 = new xAuth
xAuth1.set_consumer_key("YOUR_CONSUMER_KEY")
xAuth1.set_consumer_secret("YOUR_CONSUMER_SECRET")
xAuthBool = xAuth1.getXAuthToken("ID","PASS")
if xAuthBool = true then
myoauth_token = xAuth1.get_oauth_token()
myoauth_token_secret = xAuth1.get_oauth_token_secret()
end if
dim server_res as string
//GET
server_res = xAuth1.xAuthRequest("https://twitter.com/statuses/home_timeline.xml","GET","count=5")
//POST
server_res = xAuth1.xAuthRequest("https://twitter.com/statuses/update.xml","POST","status=TEST")
DOWNLOAD
2010年8月24日火曜日
2010年6月7日月曜日
REAL Studio xAuth Simple Sample
REAL Studio xAuth Simple Sample
dim str1,str2,str3 as string
str1 = "https://api.twitter.com/oauth/access_token"
str1 = EncodeURLComponent(str1)
str1 = "POST&" + str1 + "&"
str2 = "oauth_consumer_key=T2eStTeSTTE9s7ttEsttE"
str2 = str2 + "&oauth_nonce=a68bbb5887d77fbf72f57bb75ad80070"
str2 = str2 + "&oauth_signature_method=HMAC-SHA1"
str2 = str2 + "&oauth_timestamp=1274401561"
str2 = str2 + "&oauth_version=1.0"
str2 = str2 + "&x_auth_mode=client_auth"
str2 = str2 + "&x_auth_password=TESTPASS"
str2 = str2 + "&x_auth_username=TESTUSER"
str3 = "TestTEsttes9ttEstTestTEs14ttEST8TESt6testtE"+"&"
dim signature_base_string,signature_string as String
signature_base_string = str1 + EncodeURLComponent(str2)
dim i,ccount as integer
dim test1,test2,sbs as string
dim s as SHA1MBS
dim HMACSHA1,HMACSHA2,HMACSHA3 as string
s=new SHA1MBS
HMACSHA1 = s.HMAC(str3,signature_base_string)
signature_string = EncodeBase64(HMACSHA1)
signature_string = EncodeURLComponent(signature_string)
gURL = "https://api.twitter.com/oauth/access_token?" + str2 + "&oauth_signature=" + signature_string
dim header(-1) as string
dim c as MyCURL
c=new MyCURL
c.OptionVerbose=true
c.OptionURL = gURL
c.OptionCustomRequest="POST"
header.Append "Content-Type: text/xml"
c.SetOptionHTTPHeader header
msgbox str(c.Perform)
STR1:
POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Faccess_token&
STR2:
oauth_consumer_key=T2eStTeSTTE9s7ttEsttE&oauth_nonce=a68bbb5887d77fbf72f57bb75ad80070&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1274401561&oauth_version=1.0&x_auth_mode=client_auth&x_auth_password=TESTPASS&x_auth_username=TESTUSER
STR3:
TestTEsttes9ttEstTestTEs14ttEST8TESt6testtE&
signature_base_string:
POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Faccess_token&oauth_consumer_key%3DT2eStTeSTTE9s7ttEsttE%26oauth_nonce%3Da68bbb5887d77fbf72f57bb75ad80070%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1274401561%26oauth_version%3D1.0%26x_auth_mode%3Dclient_auth%26x_auth_password%3DTESTPASS%26x_auth_username%3DTESTUSER
signature_string:
Q4nDVCx6WRUO1lxRLxLHemj2P64%3D
(make timestamp sample)
dim d as New date
dim d2 as New Date(1970,1,1)
dim timestamp as String
dim ts,ts2,ts3 as Double
timestamp = Format((d.TotalSeconds - d2.TotalSeconds),"#")
(make timestamp sample)
dim d as New date
dim d2 as New Date(1970,1,1)
dim timestamp as String
dim ts,ts2,ts3 as Double
timestamp = Format((d.TotalSeconds - d2.TotalSeconds),"#")
2010年5月23日日曜日
phpでxAuthのテスト
http://www.sdn-project.net/labo/oauth.html
を改造してxAuthに対応してみました。
Twitter API Wiki / OAuth Examplesのtwitteroauthを使用します。
(http://github.com/abraham/twitteroauth)
必要なファイルはOAuth.phpとtwitteroauth.phpです。
下記プログラムで実現できました。
なおxAuthはtwitterの中の人にメールを出して許可をもらわないと使えませんのでご注意ください。
OAuth.phpのget_signature_base_stringの部分で調べる事が出来ます。
build_signatureでhash_hmac部分を調べる事が出来ます。
to_postdataではpostされるデータを調べる事が出来ます。
を改造してxAuthに対応してみました。
Twitter API Wiki / OAuth Examplesのtwitteroauthを使用します。
(http://github.com/abraham/twitteroauth)
必要なファイルはOAuth.phpとtwitteroauth.phpです。
下記プログラムで実現できました。
なおxAuthはtwitterの中の人にメールを出して許可をもらわないと使えませんのでご注意ください。
getXAuthToken("your_id","your_password"); // home_timelineの取得。TwitterからXML形式が返ってくる $req = $to->OAuthRequest("https://twitter.com/statuses/home_timeline.xml","GET",array("count"=>"5")); // XML文字列をオブジェクトに代入する $xml = simplexml_load_string($req); // foreachで呟きの分だけループする foreach($xml->status as $status){ $status_id = $status->id; // 呟きのステータスID $text = $status->text; // 呟き $user_id = $status->user->id; // ユーザーナンバー(数字の方は絶対に変わらない) $screen_name = $status->user->screen_name; // ユーザーID(いわゆる普通のTwitterのID) $name = $status->user->name; // ユーザーの名前(HNなど) echo "signatureは実際どの文字列を使っているかが知りたかったら".$screen_name." / ".$name." この呟きのパーマリンク \n".$text."
\n"; } ?>
OAuth.phpのget_signature_base_stringの部分で調べる事が出来ます。
public function get_signature_base_string() { $parts = array( $this->get_normalized_http_method(), $this->get_normalized_http_url(), $this->get_signable_parameters() ); print implode('&', $parts); $parts = OAuthUtil::urlencode_rfc3986($parts); print implode('&', $parts); return implode('&', $parts); }
build_signatureでhash_hmac部分を調べる事が出来ます。
to_postdataではpostされるデータを調べる事が出来ます。
2010年5月9日日曜日
xAuth
OAuthでずっと悩んでいたのでいました。(というのもマイナーな開発言語のためクラス等を公開してくださるかたがいなくて自分で実装しなくてはいけないのですが、私程度のレベルの人間にはハードル高くて。。。)
ここしばらくphpのソースなどにらめっこしてテストしていたのです。
Twitter API プログラミングが発売されたので、購入してみました。
そこでxAuthという簡易版OAuthでデスクトップクライアントに良い認証方法がある事が掲載されていましたのでこちらを調べる事に。
とりあえず。こちら良さそうなのですがtwitterの中の人にメールを出して申請するそうな。英語は書けないのでメールのサンプルを検索して申請してみました。うまくいくといいなぁ。
ここしばらくphpのソースなどにらめっこしてテストしていたのです。
Twitter API プログラミングが発売されたので、購入してみました。
そこでxAuthという簡易版OAuthでデスクトップクライアントに良い認証方法がある事が掲載されていましたのでこちらを調べる事に。
とりあえず。こちら良さそうなのですがtwitterの中の人にメールを出して申請するそうな。英語は書けないのでメールのサンプルを検索して申請してみました。うまくいくといいなぁ。
2010年5月3日月曜日
2010年4月27日火曜日
twitter-jo更新。
昨日のテスト結果を修正して本日また更新しました。他にも機能追加したい事があるのですが、難しそうなので現状でのアップ。お試し下さい。
テストしていただいた方から
ウィンドウの幅を変更すると、text field やら button の表示位置がおかしなことになる。
→訂正
起動直後にスクロールバーが点滅する。
→スクロールバーはあまり書き換えないようにしました。
ハッシュタグはいったんアプリを終了して再起動すると全部クリアされてしまう。
→訂正しました。
左の帯での色の区別は、やっぱり区別がつきにくい。
→とりあえず太くしました。(今後はアイコンも考えようかな)
自分で直した
小さいウィンドウ時にリンクが効かない
→直しました。
通信に失敗すると応答無しになってしまう。
→時間制限をつけました。うまくいくかはまだ不明。
小さいウィンドウ時のリサイズの挙動がおかしい
→訂正
小さくなる瞬間最前面アプリが入力中でも出来ない時がある。
→不明???
優先的に追加したい機能
6/20にtwitterのbasic認証が不可になるらしいので直さなくてはいけない。
URL短縮機能をつけたい。
DMを見れるようにすべきか?
テストしていただいた方から
ウィンドウの幅を変更すると、text field やら button の表示位置がおかしなことになる。
→訂正
起動直後にスクロールバーが点滅する。
→スクロールバーはあまり書き換えないようにしました。
ハッシュタグはいったんアプリを終了して再起動すると全部クリアされてしまう。
→訂正しました。
左の帯での色の区別は、やっぱり区別がつきにくい。
→とりあえず太くしました。(今後はアイコンも考えようかな)
自分で直した
小さいウィンドウ時にリンクが効かない
→直しました。
通信に失敗すると応答無しになってしまう。
→時間制限をつけました。うまくいくかはまだ不明。
小さいウィンドウ時のリサイズの挙動がおかしい
→訂正
小さくなる瞬間最前面アプリが入力中でも出来ない時がある。
→不明???
優先的に追加したい機能
6/20にtwitterのbasic認証が不可になるらしいので直さなくてはいけない。
URL短縮機能をつけたい。
DMを見れるようにすべきか?
2010年4月25日日曜日
登録:
投稿 (Atom)