Googleサービスにアプリケーションを許可するために、別のスコープ値を投稿しようとしています...
2つの入力フィールドで試しました
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar" />
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.email" />
および+区切り文字を含む1つの入力フィールド
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar+https://www.googleapis.com/auth/userinfo.email" />
1つのスコープのみでフォームを送信すると機能します。それ以外の場合、sereval scope value googleでこのエラーの説明で私をリダイレクトします:
http://localhost:49972/redirect.aspx#error=invalid_request&error_description=OAuth+2+parameters+can+only+have+a+single+value:+scope&error_uri=http://code.google.com/apis/accounts/docs/OAuth2.html
Google getting started でoAuth2を使用すると、2つのスコープ値で動作します。
ここに私のコードがあります:
<form id="form1" method="post" action="https://accounts.google.com/o/oauth2/auth?" >
<div>
<input type="hidden" name="response_type" value="code" />
<input type="hidden" name="client_id" value="my client id" />
<input type="hidden" name="redirect_uri" value="http://localhost:49972/redirect.aspx" />
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar" />
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.email" />
<input type="hidden" name="state" value="/profile" />
<input type="submit" value="go" />
</div>
</form>
それらを単一のフィールドに結合したとき、あなたは正しい軌道に乗っていました。リクエストには、値をスペースで区切って、スコープパラメーターを1つだけ含める必要があります。そのような形式で配置する場合、ブラウザがスペースのエンコードを処理します。
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email" />
スティーブバジルの答えに加えて。同じGoogleサービスに複数のスコープを適用する場合、スコープの順序が重要なようです。 F.eこの文字列は期待どおりに機能します:
"https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.metadata.readonly"
これは私には機能しませんが:
"https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/drive"
ただし、ドキュメントにはそれに関する情報がありません。