2015-10-27 12 views
10

新しいRユーザーがGoogleフォームに情報を送信する方法を教えてください。(RSeleniumは少なくともヘッドレスブラウジングのために少しセットアップが必要なので、IMOの候補にはならないが、これが最善の選択肢になっているかもしれない)。新しいRユーザーがGoogleフォームに情報を送信できるようにするにはどうすればよいですか?

新しいRユーザーがいます。対話形式で応答し、安全な場所に送信したいと考えています。私は情報を一方向に送信することができ、フォームから作成されたスプレッドシートへのユーザーアクセスを許可しないため、情報を渡すためにGoogleフォームを選択しました。

はここurl of this formです:

url <- "https://docs.google.com/forms/d/1tz2RPftOLRCQrGSvgJTRELrd9sdIrSZ_kxfoFdHiqD4/viewform" 

コンテキストを与えるために、ここで私は、ユーザーと対話するためにRを使用している方法は次のとおりです。

question <- function(message, opts = c("Yes", "No")){ 
    message(message) 
    ans <- menu(opts) 
    if (ans == "2") FALSE else TRUE 
} 

question("Was this information helpful?") 

は、私は、GoogleにそのTRUE/FALSEを送信したいです上のフォーム。上記のGoogleフォームへの返信は、ユーザーが対話するコードに埋め込むことができる方法で、ユーザーが難しく設定する必要はありません。

Rパッケージに追加すると、タスクが完了しても問題ありません。

+0

はいまたは可能な文字のコメント –

+0

'(ANS == "2")の場合FALSE else TRUE'はコードの反パターンです。変数を初期化するためには論理定数を使用し、他には*は使用しないでください。あなたがここに書きたいのは、単に 'ans!= '2' 'です。 –

+0

@KonradRudolphクイックリーコードをデモして、ポイントを取得しますが、ポイントを取得します。 –

答えて

10

POSTクエリを送信できます。ここでhttrパッケージの使用例:たとえば

を:

library(httr) 
send_response<- 
    function(response){ 
    form_url <- "https://docs.google.com/forms/d/1tz2RPftOLRCQrGSvgJTRELrd9sdIrSZ_kxfoFdHiqD4/formResponse" 
    POST(form_url, 
     query = list(`entry.1651773982`=response) 
    ) 
    } 

その後、あなたはそれを呼び出すことができます。

send_response(question("Was this information helpful?")) 
+0

「entry.1651773982」とは何ですか? –

+0

ああ、それは 'entry_'としてsourseにあります –

+0

@TylerRinkerはいそれはソースにあります。入力の名前。ブラウザーを使用して名前を検出する必要があります。 – agstudy

関連する問題