使用R发送推文

3

几个月前,我在一次演示中看到了一个很可爱的从R中发送推文的演示。演讲者使用的草稿代码如下:

http://www.r-bloggers.com/twitter-from-r%E2%80%A6-sure-why-not/

这段代码简洁明了:

library("RCurl")

opts <- curlOptions(header = FALSE, userpwd = "username:password", netrc = FALSE)

tweet <- function(status){
  method <- "http://twitter.com/statuses/update.xml?status="
  encoded_status <- URLencode(status)
  request <- paste(method,encoded_status,sep = "")
  postForm(request,.opts = opts)
}

使用此函数,您可以通过使用更新功能轻松发送推文:
tweet("This tweet comes from R! #rstats")

我认为这可能是宣布长时间作业完成的有用方式。我尝试在我的机器上运行它,但出现了一些错误:
“基本身份验证不受支持” attr(,“Content-Type”) 字符集 “application / xml” “utf-8” 警告消息: 在postForm(request,.opts = opts)中未传递任何输入。

我想知道Twitter端是否有一些更改,导致这段代码产生错误?我不太了解如何让R与网页通信,所以非常感谢任何指导!

E

4个回答

11

是的,基本身份验证方案在2010年8月16日被禁用了。您需要设置OAuth来进行认证。不幸的是,使用基本身份验证那么简单。

请参阅Twitter维基页面以获取更多信息,以及关于R语言OAuth的这个StackOverflow问题


9
除了您展示的代码外,还有一个完整的twitteR包可供参考。请注意保留HTML标记。

1
通过 Twitter-API 在 R 中发布推文的最简单方法是使用 twitteR 包。您可以在此处设置 Twitter-API-APP: https://apps.twitter.com/ 第一步是进行身份验证:
consumer_key <- "yourcredentials"
consumer_secret <- "yourcredentials"
access_token <- "yourcredentials"
access_secret <- "yourcredentials"
setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)

"而且只需推特(每天限制2400条推文):"
tweet("Hello World")

0
如果twitteR无法工作或者您想自己尝试构建它...
请参考这里,了解如何使用httr包进行自己的Twitter身份验证和API使用演示。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接