I am using the R package twitteR to post items to Twitter. I put everything inside of a function and it works fine. However, I would like to run the function without being prompted for a response, and I haven't figured out how to do that. Any suggestions?
Here are the bare bones of my function:
doit <- function(<snip>) {
<snip>
# connect to Twitter
setup_twitter_oauth(api_key, api_secret, access_token, access_token_secret)
<snip>
}
When I run the function from the command line, I am prompted for an interactive response.
[1] "Using direct authentication"
Use a local file to cache OAuth access credentials between R sessions?
1: Yes
2: No
Selection:
I can provide this information directly in a script when the setup_twitter_oauth() function is outside of a function, by entering my response in the following line, much like can be done for other user input functions like readline() or scan().
setup_twitter_oauth(api_key, api_secret, access_token, access_token_secret)
1
However, I haven't been able to get this approach to work when setup_twitter_oauth() is INSIDE of a function.
I would appreciate any suggestions on how to get this to run without requiring user input.
=====
The answer from @NicE below did the trick. I incorporated the options setting in my function as:
doit <- function(<snip>) {
<snip>
# connect to Twitter
origop <- options("httr_oauth_cache")
options(httr_oauth_cache=TRUE)
setup_twitter_oauth(api_key, api_secret, access_token, access_token_secret)
options(httr_oauth_cache=origop)
<snip>
}
This works perfectly fine.
You can try setting the
httr_oauth_cache
option to TRUE:The twitteR package uses the
httr
package, on theToken
manual page for that package they give tips about caching:I don't know much about it.
But if it's in batch, maybe try this:
Also have you tried posting the
1
outside the function to see if it does the same?And maybe it will work if you put the
1
under thesnip
These are just suggestions, cause i don't know very much about the topic, but it might help though.