Saturday 15 February 2014

javascript - How can I embed a twitter timeline in a Shiny app -



javascript - How can I embed a twitter timeline in a Shiny app -

i keen embed twitter timeline part of shiny app. have got relevant code snippet

<a class="twitter-timeline" href="https://twitter.com/pssguy/timelines/524678699061641216" data-widget-id="524686407298596864">soccer</a> <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>

i have created twitter.js file (the above minus script tags ) , ui.r below

library(shiny) shinyui(fluidpage( tags$head(includescript("twitter.js")), titlepanel(""), sidebarlayout( sidebarpanel( ), mainpanel( a("soccer", class="twitter-timeline", href="https://twitter.com/pssguy/timelines/524678699061641216", data-widget-id="524686407298596864") ) ) ))

this produces error

error: c:\users\pssguy\documents\r\testgoogletwitter/ui.r:19:124: unexpected '=' 18: mainpanel( 19: a("soccer", class="twitter-timeline", href="https://twitter.com/pssguy/timelines/524678699061641216", data-widget-id=

if omit data-widget-id="524686407298596864", link which, when clicked on, opens browser window right timeline

one thing have noticed script given not quite same in twitters development tutorial https://dev.twitter.com/web/embedded-timelines

<script type="text/javascript"> window.twttr = (function (d, s, id) { var t, js, fjs = d.getelementsbytagname(s)[0]; if (d.getelementbyid(id)) return; js = d.createelement(s); js.id = id; js.src= "https://platform.twitter.com/widgets.js"; fjs.parentnode.insertbefore(js, fjs); homecoming window.twttr || (t = { _e: [], ready: function (f) { t._e.push(f) } }); }(document, "script", "twitter-wjs")); </script>

tia

you need quote data-widget-id not syntactically valid name:

> make.names("data-widget-id") [1] "data.widget.id"

so next should work:

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){ } ) )

javascript r twitter shiny

No comments:

Post a Comment