【问题标题】:Embedded a specific tweet in a R Shiny app在 R Shiny 应用程序中嵌入特定推文
【发布时间】:2018-06-07 06:32:57
【问题描述】:

我完全是网络和所有这些东西的新手。 我希望能够通过 Shiny 应用中的用户输入显示特定推文。 这是我在这篇文章中的尝试:How can i embed a twitter timeline in a shiny app?。我正在尝试显示这条推文:https://twitter.com/AndrewYNg/status/894994683931148288

library(shiny)
runApp(list(ui = fluidPage(
  tags$head("<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');</script>"),
  titlePanel(""),
  sidebarLayout(
    sidebarPanel()
    , mainPanel(
      a("Tweets by Andrew Ng", class="twitter-tweet"
        , href = "https://twitter.com/AndrewYNg/status/894994683931148288"
      )
    )
  )
)
, server = function(input, output, session){

}
)
)

它不显示推文,而是显示推文的链接。我猜 tag$head 不包含好东西,但我不知道它应该是什么。

【问题讨论】:

标签: r twitter shiny


【解决方案1】:
  1. 将脚本包装在 shiny::HTML() 中,这样内容就不会被 HTML 转义。在您的示例中,&amp;lt;script&amp;gt; 被转义为 &amp;lt;script&amp;gt;。或者更好,使用shiny::tags$script()

  2. 查看 Twitter 文档以了解如何嵌入推文并确保标记正确:https://dev.twitter.com/web/embedded-tweets

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(
        HTML('
        <blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">
          Want to break into AI? You can learn Deep Learning from new deeplearning.ai courses on Coursera:
          <a href="https://www.coursera.org/specializations/deep-learning">https://www.coursera.org/specializations/deep-learning</a></p>&mdash; Andrew Ng (@AndrewYNg)
          <a href="https://twitter.com/AndrewYNg/status/894994683931148288?ref_src=twsrc%5Etfw">August 8, 2017</a>
        </blockquote>
      ')
      )
    )
  ),
  server = function(input, output, session) {}
))

我在推文中使用了原始 HTML,但您可以将其转换为 HTML 标记对象。

【讨论】:

  • 哇,非常感谢。您应该在 13 小时内收到赏金。告诉我是否不是这样。我不知道这个赏金的东西是如何工作的!
  • 为什么嵌入推文上的“日期”和“谈论推文的人数”与在浏览器上打开 URL 不同?
猜你喜欢
  • 2014-12-08
  • 2017-09-30
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 2020-07-31
  • 2020-06-01
相关资源
最近更新 更多