Sto utilizzando il pacchetto R per inviare articoli su Twitter. Metto tutto all'interno di una funzione e funziona perfettamente. Tuttavia, mi piacerebbe eseguire la funzione senza essere richiesta per una risposta, e non ho capito come farlo. Eventuali suggerimenti?Autenticazione automatica dell'autottria con twitteR, fornisce risposta al prompt interattivo in modalità "batch"
Qui ci sono le ossa nude della mia funzione:
doit <- function(<snip>) {
<snip>
# connect to Twitter
setup_twitter_oauth(api_key, api_secret, access_token, access_token_secret)
<snip>
}
Quando eseguo la funzione dalla riga di comando, sono richiamato per una risposta interattiva.
[1] "Using direct authentication"
Use a local file to cache OAuth access credentials between R sessions?
1: Yes
2: No
Selection:
posso fornire queste informazioni direttamente in uno script quando la funzione setup_twitter_oauth() è al di fuori di una funzione, inserendo la risposta nel seguente riga simile può essere fatto per altre funzioni di input dell'utente come readline () o scansione().
setup_twitter_oauth(api_key, api_secret, access_token, access_token_secret)
1
Tuttavia, non sono stato in grado di ottenere questo approccio al lavoro quando setup_twitter_oauth() si trova all'interno di una funzione.
Apprezzerei qualsiasi suggerimento su come farlo funzionare senza richiedere l'input dell'utente.
=====
La risposta da @NicE sotto ha fatto il trucco. Ho incorporato l'impostazione delle opzioni nella mia funzione come:
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>
}
La tua domanda ha finito per aiutarmi. Dato che volevo solo passare la selezione (1) al di fuori di una funzione. Grazie! –
Non ho potuto ottenere un errore durante la prova del codice con la parte. Che cosa suggerisci di sostituire con? –
Il '' non è un vero codice R, è solo il mio modo stenografico per indicare che nel mio script ho rimosso qualche altro codice (non pertinente alla domanda) per chiarezza. –