Как мы можем получить токен аутентификации Google с помощью DotnetOpenAuth?

Я пишу приложение в .net, которое поможет пользователям получить свои списки подписки Google Reader.

Я думал об использовании DotnetOpenAuth для аутентификации, а затем получить токен аутентификации Google. Пользователи будут вводить учетные данные Google на сайте Google и, наконец, они будут перенаправлены в мое приложение с токеном авторизации. Теперь, используя этот токен авторизации, я планировал сделать запрос к конечной точке Google Reader, которая возвращает список подписок в виде файла opml.

Кто-нибудь знает? Поделись, пожалуйста.


person ShankarSangoli    schedule 28.03.2013    source источник
comment
Это всего лишь нежный комментарий от такого же программиста, как вы. Я знаю, что это не ответит на ваш вопрос, но на вашем месте я не буду тратить на это время, так как Google Reader скоро будет деактивирован. support.google.com/reader/answer/3028851   -  person PM_ME_YOUR_CODE    schedule 28.03.2013
comment
Причина, по которой я это делаю, заключается в том, что читатель Google уходит через несколько дней. Я хочу получить подписки пользователей от Google Reader.   -  person ShankarSangoli    schedule 28.03.2013


Ответы (1)


Я написал клиент DotNetOpenAuth для Google, который использует OAuth2. Вы должны иметь возможность использовать это, чтобы вернуть токен авторизации.

https://github.com/mj1856/DotNetOpenAuth.GoogleOAuth2

Если вы используете новые классы OAuthWebSecurity из Microsoft.AspNet.WebPages.OAuth, то вы оштрафуете токен доступа Google, возвращенный вам в результатах OauthWebSecurity.VerifyAuthentication в вашем методе обратного вызова.

ОБНОВЛЕНИЕ. Приведенный выше ответ относится конкретно к DotNetOpenAuth в MVC4. MVC5 не использует DotNetOpenAuth и уже поставляется с решением Google OAuth.

person Matt Johnson-Pint    schedule 28.03.2013
comment
Для использования Google oAuth2 обязательно иметь client_id, client_secret и т. д.? - person ShankarSangoli; 29.03.2013
comment
да. Вы устанавливаете приложение в консоли разработчиков Google, чтобы получить их. - person Matt Johnson-Pint; 29.03.2013
comment
Неужели нет другого пути? - person ShankarSangoli; 29.03.2013
comment
Конечно, нет. Зачем Google давать вам токен авторизации без вашей аутентификации? - person Matt Johnson-Pint; 29.03.2013
comment
На самом деле, я говорил с точки зрения OAuth2. Если вы хотите вместо этого использовать OpenID, вам не нужно предварительно регистрировать свое приложение. Но я действительно не уверен, дадут ли они вам токен авторизации, когда вы используете OpenID или нет. Это не совсем то, для чего это предназначено. - person Matt Johnson-Pint; 29.03.2013
comment
Вы правы, OpenID не дает токен авторизации, потому что я уже пробовал. - person ShankarSangoli; 29.03.2013
comment
Я вижу, что вы выдаете исключение, если запрошенная область не указана. Это обязательно? Если нет, то каковы его возможные значения? - person ShankarSangoli; 29.03.2013
comment
Там есть конструктор, который предоставляет некоторые области по умолчанию, если вы их не предоставляете. Я понятия не имею, каковы все возможные области действия и нужно ли вам передать определенные области для Google Reader. Вам придется копаться в документации. Похоже, что большая часть API Google Reader не документирована или документы были удалены. Удачи. - person Matt Johnson-Pint; 29.03.2013
comment
Удаленный сервер вернул ошибку: (401) Несанкционировано. Это то, что я получаю после того, как изменил область действия на google.com/reader/api. Хотя в этом мало что помогает. У вас есть идеи, в каком случае Google выдаст эту ошибку? - person ShankarSangoli; 29.03.2013
comment
Нет простите. Не имею представления. - person Matt Johnson-Pint; 29.03.2013