Search code examples
rtwitteroauthtwitter-oauthhttr

POST update to Twitter using Oauth and HTTR, R


I am trying to post an update to Twitter using the api. Following the steps at https://github.com/hadley/httr/blob/master/demo/oauth1-twitter.r, I can get the GET call to work, but I haven't managed to get the POST to work. Here is the relevant code:

library(httr)
library(httpuv)


oauth_endpoints("twitter")

myapp <- oauth_app("twitter", 
key = "key"
secret = "secret" 
) 

twitter_token <- oauth1.0_token(oauth_endpoints("twitter"), myapp)


#this works fine
req <- GET("https://api.twitter.com/1.1/statuses/home_timeline.json", 
config(token = twitter_token)) 



#this doesn't work.  Returns error 403: status is forbidden
POST(url = "https://api.twitter.com/1.1/statuses/update.json",
     body = "test", 
     config(token = twitter_token)
     )

Any solution that allows a status update (Tweet) from R is acceptable.


Solution

  • The docs say you need to pass a parameter status as a query parameter, not in the body, which makes sense b/c it can only be 140 characters long anyway.

    POST("https://api.twitter.com/1.1/statuses/update.json",
         query = list(status = "testing from R"),
         config(token = twitter_token)
    )