2010-07-12 66 views
1

我写了一个使用webclient发布到Twitter的方法。从控制台应用程序调用方法时,一切正常。从Silverlight 4应用程序发布到Twitter

我将该方法迁移到Silverlight 4.以下是乐趣开始的地方。在清理完代码之后,切换到异步方法调用,然后摆脱红色扭曲的下划线,代码现在运行在我的SL4应用程序中。然而,这些推文并没有发布到我的twitter页面。

我连线了一个“_completed”事件的事件处理程序。它被解雇了。 还为“_uploadProgressChanged”事件连接了一个事件处理程序。它永远不会被解雇。可能上传太快?

对此进行故障排除的任何建议?

更新#2 更正...“_completed”事件不会被解雇。我还加入了Fiddler来观看流量。它没有出现应用程序正在传输任何东西。提琴手确实显示活动,如果我发布到stackoverflow(所以Fiddler正在工作)。

public static void PostTwitterUpdate(string handle, string pwd, string tweet) 
{ 
    WebClient webClient = new WebClient(); 

    webClient.Credentials = new NetworkCredential(handle, pwd); 

    Uri uriString = new Uri("http://twitter.com/statuses/update.xml", UriKind.Absolute); 

    try 
    { 
      // event handlers added tongiht for debugging... 
      webClient.UploadProgressChanged += webClient_UploadProgressChanged; 
      webClient.UploadStringCompleted += webClient_UploadStringCompleted; 

      webClient.UploadStringAsync(uriString, "It's just me testing..."); 
    } 

    catch (Exception ex) 
    { 
      throw; 
    } 

} 


static void webClient_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) 
{ 
    // breakpoint set here for debugging... 
} 




static void webClient_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e) 
{ 
    // breakpoint set here for debugging... 
} 
+0

请发布修剪后的代码... – 2010-07-12 01:27:34

+0

这是处理Twitter API的正确方法吗?他们的文档(http://apiwiki.twitter.com/Twitter-REST-API-Method:-statuses%C2%A0update)指出了否则,表明应该使用OAuth和URL参数('status')。 – gpmcadam 2010-07-12 01:54:49

+0

OAuth正在考虑未来。手头的任务是从Silverlight发布推文。为了简单起见,我们最初使用控制台应用开发它。现在我们需要Silverlight。 – DenaliHardtail 2010-07-12 02:10:52

回答

1

这只会在高处工作的信任外的浏览器应用程序,因为在http://twitter.com/crossdomain.xml Twitter的跨域策略文件不允许基于网页的应用程序的调用。 迈克尔

相关问题