在R Shiny应用程序中嵌入特定的推文

问题描述 投票:0回答:1

我完全是网络上的新手和所有这些东西。我希望能够在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){

}
)
)

它不显示推文,而是显示推文的链接。我想标签$ head不包含好东西,但我无法弄清楚应该是什么。

r twitter shiny
1个回答
2
投票
  1. 将脚本包装在shiny::HTML()中,以便内容不会被HTML转义。在你的例子中,<script>正在逃到&lt;script&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标记对象。

© www.soinside.com 2019 - 2024. All rights reserved.