2014-01-31 1 views
1

Я бы хотел использовать API Google Диска в своем рабочем приложении C#. Тем не менее, я нашел официальный SDK Google на NuGet, чтобы иметь больше зависимостей, чем мне удобно (добавление его в мой проект VS2010 добавляет 10 дополнительных пакетов NuGet). Я боюсь, что эти зависимости будут сталкиваться с другими зависимостями по мере роста моего решения.Альтернатива SDK Google Диска с меньшими зависимостями

  1. Есть ли альтернатива этому подходу, который использует меньше зависимостей?
  2. Могу ли я использовать другую библиотеку OAuth 2.0 или я должен использовать SDK OAuth от Google? Есть ли что-то особенное в реализации OAuth 2.0 от Google, что помешало бы использовать альтернативную библиотеку OAuth 2.0?
+0

Я закончил свой собственный класс, чтобы сделать это. Моя единственная зависимость - [RestSharp] (http://restsharp.org/) (для упрощения HTTP-запроса и сериализации json). – Clay

ответ

2

Есть ли альтернатива этому подходу, который использует меньше зависимостей?

Вы могли бы, конечно, написать свой собственный API, используя HttpClient в сочетании с Drive API. API использует простые методы Get/Post/Put/Delete/Patch http для изменения файлов в каталоге google drive.

Могу ли я использовать другую библиотеку OAuth 2.0 или я должен использовать SDK OAuth от Google?

Зависит. Если вы написали свой собственный, то вы можете использовать (или писать) любой клиент OAuth. Методы http должны включать в себя информацию OAuth в запросах, поэтому написание собственного кода дает вам такой тип доступа.

Если вы ищете настоящую рекомендацию по продукту, это будет off topic question (do not ask #5) for stack overflow.

Update

Пусть говорят о том, как OAuth работает на очень высоком уровне. Once the user authorizes your code to impersonate (for lack of better terminology), you get a Authorization Code, which you use to get an Exchange Token.

Значок является важной частью. Если у рамки предварительной сборки нет никакого способа указать, что это означает, то это не имеет значения.

Если вы хотите, чтобы проверить подлинность вашей просьбе себя, скажем, с помощью C#, когда you make a call to access Google Drive API, you'd want to add the Authorization to the Google Headers (or QueryString, but I personally don't like to use the Querystring):

GET /plus/v1/people/me HTTP/1.1 
Authorization: Bearer 1/fFBGRNJru1FQd44AzqT3Zg 
Host: googleapis.com 
+0

Спасибо Эрик. Справедливо. Возможно, лучший способ задать вопрос №2: «Есть ли что-то особенное в реализации OAuth 2.0 Google, которое может помешать использованию альтернативной библиотеки OAuth 2.0?» – Clay

+0

Обновлено за ваш комментарий. –

1

Подвижной свой собственный не слишком обременительным.

Все http-звонки документируются на этой странице https://developers.google.com/accounts/docs/OAuth2 в сочетании с подстраницей, специфичной для вашего сценария (например, встроенным, веб-сайтом и т. Д.).

Как только вы думаете, что понимаете это, перейдите на превосходную площадку Oauth на https://developers.google.com/oauthplayground/ и посмотрите трафик http.

Если вы можете сделать http-звонки, которые соответствуют тому, что вы видите на игровой площадке, вы алмаз.

Большинство усилий в обращении с различными состояниями, что ваше приложение может столкнуться: -

  • недействительным грант (., Например Google истек маркер обновления)
  • истечения срока действия маркера
  • TimeOuts
  • пользователь отклонен auth

У вас есть выбор на уровне http. Вы можете напрямую использовать HTTP-адрес C#, или вы можете использовать http-библиотеки Google, упомянутые Эриком.