Спецификация OAuth 2.0 еще не закончена, и существует несколько реализаций спецификаций для различных клиентов и служб, которые вызывают появление этих ошибок. Скорее всего, вы все делаете правильно, но версия DotNetOpenAuth, которую вы используете, реализует черновик OAuth 2.0, отличный от того, который сейчас используется в Google. Ни одна из частей не является «правильной», поскольку спецификация еще не доработана, но совместимость превращается в настоящий кошмар.
Вы можете проверить, что версия DotNetOpenAuth, которую вы используете, является самой последней (в случае, если это поможет, что может ), но в конечном счете вам, возможно, придется либо сидеть сложа руки, пока спецификации не будут завершены, и все реализует их правильно, либо самостоятельно прочитайте документы Google (которые, вероятно, описывают их версию OAuth 2.0) и внедрите ту, которая специально предназначена для их черновой версии.