【问题标题】:Error while embedding Twitter Timeline on Shiny在 Shiny 上嵌入 Twitter 时间线时出错
【发布时间】:2015-01-14 10:42:10
【问题描述】:

我正在尝试解决这个问题:

How can I embed a twitter timeline in a Shiny app

这是我的代码:

library(shiny)
runApp(list(ui = fluidPage(
  tags$head(tags$script('!function(d,s,id){var js,fjs=d.getElementsByTagName(s)    [0],p=/^http:/.test(d.location)?\'http\':\'https\';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");')),
  titlePanel(""),
  sidebarLayout(
    sidebarPanel()
    , mainPanel(
      a("BreakingNews",class="twitter-timeline",href = "https://twitter.com/BreakingNews", "data-widget-id"="553910163694821376")     
               )
               )
 )
, server = function(input, output, session){

}
)
)

我收到此错误:

Error in handlers$add(handler, key, tail) : Key / already in use

【问题讨论】:

  • 请更新闪亮,您可能正在运行旧版本,因为您的示例对我来说很好。我认为这是一个目录错误
  • @pops 你知道为什么我只得到句柄名称而不是时间轴吗?

标签: r twitter shiny


【解决方案1】:

所以我稍微调整了一下代码,至少错误消失了。

library(shiny)
      shinyUI(fluidPage(
  tags$head(tags$script('!function(d,s,id){var js,fjs=d.getElementsByTagName(s)    [0],p=/^http:/.test(d.location)?\'http\':\'https\';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");')),
  titlePanel(""),
  sidebarLayout(
      sidebarPanel(),
      mainPanel(
      a("@ChannelNewsAsia",class="twitter-timeline",href="https://twitter.com/ChannelNewsAsia", "data-widget-id"=553910391399383040)     
               )
               )
 )
)

但现在屏幕只显示句柄名称,即@ChannelNewsAsia,单击它会将用户带到指定的链接。 ui上仍然没有出现时间线小部件

【讨论】:

  • 好的。所以我在浏览器上发布了相同的内容并且工作正常。就像我期望的那样。猜猜闪亮的窗口不是在本地测试代码的最佳场所。
猜你喜欢
  • 2018-01-06
  • 2013-07-03
  • 1970-01-01
  • 2015-09-11
  • 2013-06-12
  • 1970-01-01
  • 2016-03-17
  • 2012-08-31
  • 2016-12-14
相关资源
最近更新 更多