首页 > 解决方案 > 通过 Shiny 应用程序中的 Twitter 共享小部件将 ggplot 图像附加到推文

问题描述

我有一个闪亮的应用程序,其中包含一个小部件,用于与一些预加载的文本共享推文。它在应用程序上显示为一个按钮,上面写着“Tweet”,它发送位于代码的 tags$div 部分的数据文本行中的文本。我还希望能够在人们在线使用 Shiny 应用程序时创建的推文中包含 ggplot 图表的图像。

这甚至可能吗?我看到有人建议 Twitter 卡可能是一种选择,但我不熟悉这些,也不熟悉如何让一个人在这个工具中工作。

以下是我的最小代表。如果您想查看应用程序的完整形式,该应用程序托管在 ffevaluator.com/tools/draftevaluator 上。

用户界面:

ui <- fluidPage(
    mainPanel(
      plotOutput("draftPlot"),
      tags$div(
        HTML("<div style='float:right'>
             <a href='https://twitter.com/share' 
             class='twitter-share-button' 
             align='middle' 
             data-url='www.mywebsite.com' 
             data-text='Insert text here!' 
             data-size='large'>Tweet
             </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>
             </div>")
        )) )

服务器:

server <- function(input, output) {


  output$draftPlot <- renderPlot({    
    ggplot() +
      geom_smooth() +
      geom_point() 
  })


}

我还在 RStudio 社区网站上发布了这个(发布在这里:https ://community.rstudio.com/t/attach-ggplot-image-to-tweet-through-twitter-share-widget-in-shiny-app/67867 ) 但尚未收到任何回复。

标签: htmlrtwittershiny

解决方案


遗憾的是,Twitter 网络共享弹出窗口 ( twitter.com/share) 无法包含图像。Twitter Card 的工作方式是,如果您在推文文本中共享指向静态网页的链接,并且该页面有一些包含图像的标记,那么图像将显示为链接的预览. 我不熟悉 Shiny 是否可以在这里工作。


推荐阅读