twitter_send.hsp

sample\hspinet\twitter_send.hsp » Plain Format

#include "hspinet.as"

	;
	;	Twitterに発言を投稿
	;
	title "Twitterに発言を投稿"

	sdim res,4096
	sdim orgmsg,4096	; もとのメッセージ(SJIS)
	sdim utf8msg,4096	; UTF8に変換したメッセージ
	sdim encmsg,4096	; URLエンコードされたメッセージ

	user = "???"
	pass = "???"
	orgmsg = "日本語メッセージの投稿テスト viaHSP3"

	objsize 120,24
	pos 0,0:mes "TwitterID":pos 220,0:mes "PASS"
	pos 80,0:input user
	pos 262,0:input pass:id_pass=stat
	sendmsg objinfo(id_pass,2),$CC,'*'
	pos 0,28
	mesbox orgmsg,640,100,1
	button "送信",*go
	stop

*go
	cls
	netinit
	if stat : dialog "ネット接続できません。" : end

	;	URLを指定
	neturl "http://twitter.com/statuses/"

	;	POST形式でCGIにパラメーターを渡す
	srcstr = user+":"+pass
	b64encode res, srcstr		; base64エンコード
	netheader "Authorization: Basic "+res+"\n"	; BASIC認証の設定

	nkfcnv utf8msg,orgmsg,"Sw"	; utf-8に変換する
	urlencode encmsg,utf8msg	; URLエンコードする

	prm = "status="+encmsg
	netrequest_post "update.json", prm	; CGI送信(POST)

	mes "投稿を送信しました。"

*main
	;	結果待ちのためのループ
	netexec res
	if res > 0 : goto *comp
	if res < 0 : goto *bad
	await 50
	goto *main

*bad
	;	エラー
	neterror estr
	mes "ERROR "+estr
	stop

*comp
	;	完了
	mes "完了。"

	netgetv buf

	jsonopen jroot,buf
	jsongets erstr, "error"
	if stat=0 : dialog "サーバーがエラーを返しました\n"+erstr
	jsonclose

	mesbox buf,640,300,1

	stop