forked from: コピペで使える「Twitter投稿ボタン」クラス(美人すぎったー)
forked from コピペで使える「Twitter投稿ボタン」クラス(美人すぎったー) (diff: 188)
ActionScript3 source code
/**
* Copyright h_sakurai ( http://wonderfl.net/user/h_sakurai )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/oKMe
*/
package {
import flash.display.*
import flash.events.Event
import flash.net.URLRequest
import flash.net.URLLoader
import flash.text.*
import com.adobe.serialization.json.JSON
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import mx.utils.Base64Encoder;
import flash.utils.ByteArray;
import flash.ui.Keyboard;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
public class Document extends Sprite {
public var text:TextField = new TextField()
public var email:TextField = new TextField()
public var pass:TextField = new TextField()
public var input:TextField = new TextField()
public function Document() {
text.y = 20
text.width = 512
text.height = 512
addChild(text)
email.background = true
input.height = pass.height = email.height = 20
input.type = pass.type = email.type = TextFieldType.INPUT;
pass.x = 120
input.borderColor = email.borderColor = pass.borderColor = 1
input.border = email.border = pass.border=true
input.x = 250
addChild(email)
addChild(pass)
addChild(input)
input.addEventListener(KeyboardEvent.KEY_DOWN, function(event:KeyboardEvent):void {
if ( event.keyCode == Keyboard.ENTER ) {
var request:URLRequest = new URLRequest(
"http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=ja%7Cfi&q="
+ encodeURI(input.text))
var loader:URLLoader = new URLLoader(request)
loader.addEventListener(Event.COMPLETE, function(event:Event):void {
var json:Object = JSON.decode(loader.data)
text.text = input.text + "\n" + json["responseData"]["translatedText"]
submit1(text.text)
})
loader.load(request)
}
})
}
public function submit1(st:String):void {
initTwitterManager();
/* var loader:URLLoader = new URLLoader();
var urlReq:URLRequest = new URLRequest("http://twitter.com/statuses/update.xml");
var ben:Base64Encoder = new Base64Encoder();
ben.encodeUTFBytes(email.text + ":"+ pass.text);
var reqHead:* = new URLRequestHeader("Authorization", "Basic " + ben.toString())
urlReq.requestHeaders.push(reqHead);
urlReq.method = URLRequestMethod.POST;
//urlReq.contentType = "application/x-www-form-urlencoded"
var uv:URLVariables = new URLVariables();
uv.status=st;
text.appendText(uv.toString())
urlReq.data = uv;
loader.addEventListener(ProgressEvent.PROGRESS,t);
loader.addEventListener(IOErrorEvent.IO_ERROR,t);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, t);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,t);
loader.addEventListener(Event.COMPLETE,t);
text.appendText("5\n");
loader.load(urlReq);
// navigateToURL( urlReq );*/
tweet(st)
}
public function t(event:*):void {
text.appendText(""+event);
}
public var service:HTTPService;
public function initTwitterManager():void {
service = new HTTPService;
service.method = "post";
service.url = "http://twitter.com/statuses/update.json";
service.resultFormat = "text";
service.addEventListener(ResultEvent.RESULT, onResult);
service.addEventListener(FaultEvent.FAULT, onFault);
}
public function tweet(message:String):void {
var forms:URLVariables = new URLVariables();
forms.status = message;
var encoder:Base64Encoder = new Base64Encoder();
encoder.encode(email.text+":"+pass.text);
service.headers["Authorization"] = "Basic " + encoder.toString();
service.request = forms;
service.send();
}
private function onResult(event:ResultEvent):void {
var json:Object = JSON.decode(event.result.toString());
t(json.text);
}
private function onFault(event:FaultEvent):void {
t("投稿失敗...\n" + event.fault.toString());
}
/*
req=Net::HTTP::Post.new "/statuses/update.xml"
req.basic_auth(@username,@password)
submit=URI.escape(status)
Net::HTTP.start(SERVER) do |http|
if repto==nil then resp=http.request(req,"status=#{submit}")
else
repto=repto.to_i
resp=http.request(req,"status=#{submit}&in_reply_to_status_id=#{@id_array[repto]}") if 0<repto&&repto<=@id_array.size
end
raise "リクエストに失敗" unless resp.code=='200'
end*/
}
}