How can i embed a twitter timeline in a shiny app?

こ雲淡風輕ζ 提交于 2019-12-20 15:21:17

问题


Having difficulty embedding a twitter timeline into a shiny app.

tried to follow this code

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("Soccer", class="twitter-timeline"
        , href = "https://twitter.com/pssGuy/timelines/524678699061641216"
        , "data-widget-id" = "524686407298596864")
    )
  )
)
, server = function(input, output, session){

}
)
)

but now that twitter has changed the way they produce widgets i cant figure out how to get w new data widget id. Not super familiar with HTML or JS so any help would be appreciated!

hoping to embed the timeline of "https://twitter.com/CityOfBoston"


回答1:


Edited to include OP comments on re-formatting as a shiny dashboard page with tabs. I don't think you need the data-widget-id anymore. This loads the timeline for me.

library(shiny)
runApp(list(ui = dashboardPage(header=dashboardHeader(titleWidth=150,
                                title = "Title"),
                        sidebar=dashboardSidebar(width=150,
                                sidebarMenu(
                                        menuItem("Twitter Timeline", tabName="twittertimeline", icon=icon("globe")),
                                        menuItem("Empty Tab", tabName = "empty", icon=icon("info-circle"))
                                )
                        ),
                        body=dashboardBody(
                                tabItems(
                                        tabItem(tabName="twittertimeline",
                                                fluidRow(column(width=12,
                        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");')),
                         column(width=6, box(width=NULL, height=NULL,
                                        a("Tweets by @CityOfBoston", class="twitter-timeline"
                                                , href = "https://twitter.com/CityOfBoston"
                                         )
                                )
                        )
                ))),
tabItem(tabName="empty",
        fluidRow(column(width=12,
                        box(width=NULL,height=NULL)
                        )))

)))
                , server = function(input, output, session){

                }
        )
)


来源:https://stackoverflow.com/questions/45257922/how-can-i-embed-a-twitter-timeline-in-a-shiny-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!