使用Flash/Flex发布到twitter
我正试图使用Flex(如果有任何不同,请使用Flex 3.5 SDK和Flex Builder 4)在我的twitter上发布一条“tweet”。在一个mxml文件上,我创建了一个按钮,以方便调用AS3函数,在该函数中,我发出了一个URL请求。显然,我做错了什么,因为我的推特没有发布。我在Twitter自己提供的curl请求中得到了这些变量,这实际上是有效的。我猜我的格式不正确,但我不知道那是什么…非常感谢您可能提供的任何帮助。以下是我正在使用的代码: 编辑:我想澄清一下,我已经有了相应的授权密钥等(因为我制作了一个Coldfusion脚本来处理这个问题)。我不需要授权方面的帮助,只需要发布使用Flash/Flex发布到twitter,flash,apache-flex,twitter,Flash,Apache Flex,Twitter,我正试图使用Flex(如果有任何不同,请使用Flex 3.5 SDK和Flex Builder 4)在我的twitter上发布一条“tweet”。在一个mxml文件上,我创建了一个按钮,以方便调用AS3函数,在该函数中,我发出了一个URL请求。显然,我做错了什么,因为我的推特没有发布。我在Twitter自己提供的curl请求中得到了这些变量,这实际上是有效的。我猜我的格式不正确,但我不知道那是什么…非常感谢您可能提供的任何帮助。以下是我正在使用的代码: 编辑:我想澄清一下,我已经有了相应的授权密
var postTO:URLRequest=new URLRequest("https://api.twitter.com/1/statuses/update.json");
var params:URLVariables = new URLVariables(
"include_entities=true&status=Maybe+he%27ll+finally+fiasdfasdfmnnd+his+kekjhjkys.+%23peterfalk&trim_user=true"+"&"+
"status=Maybe+he%27ll+finally+fiasdfasdfmnnd+his+kekjhjkys.+%23peterfalk"+"&"+
"trim_user=true"+"&"+
"oauth_consumer_key=<myOauthConsumerKey>"+"&"+
"oauth_nonce=<myOauthNonce>"+"&"+
"oauth_signature=<myOauthSignature>"+"&"+
"oauth_signature_method=HMAC-SHA1"+"&"+
"oauth_timestamp=1331137102"+"&"+
"oauth_token=<myOAuthToken>"+"&"+
"oauth_version=1.0");
var loader:URLLoader = new URLLoader();
postTO.data=params;
postTO.method=URLRequestMethod.POST;
try {
loader.load(postTO);
} catch (error:Error) {
trace("Unable to load requested document.");
}
var postTO:URLRequest=新的URLRequest(“https://api.twitter.com/1/statuses/update.json");
变量参数:URLVariables=新的URLVariables(
“include_entities=true&status=Maybe+he%27ll+finally+fiasdfasdfmnnd+his+kekjhjkys.+%23peterfalk&trim_user=true”+“&”+
“状态=可能+他%27ll+finally+fiasdfasdfmnnd+his+kekjhjkys.+%23peterfalk”+“&”+
“trim_user=true”+“&”+
“oauth_consumer_key=“+”&”+
“oauth_nonce=“+”&”+
“oauth_签名=”+“&”+
“oauth_signature_method=HMAC-SHA1”+“&”+
“oauth_时间戳=1331137102”+“&”+
“oauth_令牌=“+”&”+
“oauth_版本=1.0”);
变量加载器:URLLoader=新的URLLoader();
postTO.data=params;
postTO.method=URLRequestMethod.POST;
试一试{
加载(postTO);
}捕获(错误:错误){
跟踪(“无法加载请求的文档”);
}
查看您访问的域的文件:
<cross-domain-policy xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
<allow-access-from domain="twitter.com"/>
<allow-access-from domain="api.twitter.com"/>
<allow-access-from domain="search.twitter.com"/>
<allow-access-from domain="static.twitter.com"/>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-http-request-headers-from domain="*.twitter.com" headers="*" secure="true"/>
</cross-domain-policy>
除非您在twitter上工作和/或有权从任何允许的域为您的SWF提供服务;您将无法构建直接从Flash访问这些URL的基于浏览器的应用程序,您必须使用您选择的服务器端语言构建代理 实际上,我已经有了一个这样的文件设置。即使使用Coldfusion,我似乎也无法发布它,这让我觉得我一定有某种格式不正确。这是可能的。请记住,crossdomain.xml文件必须位于Flash访问的服务器上;不是使用SWF的服务器。您必须让Twitter更改他们的crossdomain.xml文件。但是,如果ColdFusion无法访问URL,那么问题可能不是跨域安全;但这将是一个完全不同的问题。