2010-11-23 156 views
3

几个月前,我在演示中看到了来自R的推文的可爱演示。由演讲者使用的刮代码是在这里:使用R发送推文

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

代码是简单明了: 库( “RCurl”) 选择采用< - curlOptions(标题= FALSE, userpwd =“用户名:密码

tweet("This tweet comes from R! #rstats") 
:” 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

我认为这可能是宣布长时间工作完成的有用方式。我想我的机器上运行此,我得到了一些错误:

[1] “\ n \ n基本身份验证,不支持\ n \ n” 个 ATTR( “内容类型”) 字符集 “应用程序/ xml” 的 “UTF-8” 警告消息: 在postForm(请求,.opts = OPTS):无输入传递到形成

我想知道是否有已经对一些变化叽叽喳喳结束,这使得这段代码产生这个错误?我不太了解让R与网页交谈,所以任何指导都非常感谢!

Ë

回答

11

是,基本的身份验证方案已于2010年8月16日关闭。您需要将其设置为使用OAuth。不幸的是几乎没有使用基本身份验证一样简单

请参阅本twitter wiki page以获取更多信息和this StackOverflow question了解OAuth为R.

9

除此之外,您还显示代码,还有一个完全成熟的twitteR包在CRAN你可以看看。

-1

如果twitteR不工作,或者你只是想尝试建立它自己...

对于如何与HTTR包的帮助下做你自己的Twitter认证和使用API​​的演示中看到here

0

通过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")