Как использовать Linq для Twitter внутри веб-службы?

Я пишу веб-приложение, которое использует Linq для Twitter, чтобы помочь пользователю управлять учетной записью Twitter. Я понимаю, что мне нужно скрыть свой ключ потребителя и секрет потребителя на стороне сервера, чтобы предотвратить его раскрытие.

Для этого я знаю, что могу использовать MvcAuthorizer и использовать Linq To Twitter на стороне сервера моего приложения MVC. Но что, если я хотел бы отделить код Linq To Twitter от веб-приложения и представить его как веб-сервис, размещенный отдельно от моего приложения MVC?

Таким образом, поток данных будет выглядеть так...

Клиент веб-браузера <-> Моя веб-служба (ServiceStack) <-> Linq to Twitter <-> API REST Twitter

Из прочтения документации на сайте Linq to Twitter и на сайте dev.twitter.com я понял, что мой процесс должен выглядеть примерно так:

  1. Пользователь нажимает какую-то кнопку в веб-приложении, которая запускает процесс авторизации
  2. Пользователь перенаправляется в твиттер и авторизует приложение для использования.
  3. Пользователь перенаправляется обратно на указанный мной URL-адрес обратного вызова. Мое приложение теперь имеет доступ к токенам OAuth пользователей через строку запроса в этом URL обратного вызова.
  4. Мое приложение где-то хранит эти токены OAuth
  5. Мой прокси-веб-сервис использует эти токены OAuth для запроса Twitter API от имени пользователя.

Я думаю, что могу сделать шаги 1-4, используя инструкции здесь о MvcAuthorizer.

Я не уверен, как это сделать. 5. Я думал, что должен получить сообщение UserTweetsRequest, которое я отправил в мой сервис. В сообщении будет указано имя пользователя Twitter. Внутри сервиса я просматривал сохраненные токены OAuth для этого пользователя, объединял их с моими потребительскими токенами, а затем использовал Linq To Twitter для выполнения запроса.

Если у меня теперь есть все токены потребителя и пользователя, мне нужно вызвать API Twitter через Linq to Twitter, какой авторизатор я должен использовать в своей реализации сервиса, чтобы это произошло? Должен ли я реализовать свой собственный?

1 ответ

Авторизаторы LINQ to Twitter предназначены для обхода процесса авторизации в Twitter и просто подписывают запрос, если у вас есть все 4 ключа. Похоже, что это так, поэтому вы можете использовать (почти) любой из авторизаторов в вашем веб-сервисе. Вы можете использовать SingleUserAuthorizer, MvcAuthorizer или WebAuthorizer, если вы предоставите все 4 учетных данных.

У меня есть демонстрация WCF на моей странице образцов. Возможно, вам потребуется обновить версию LINQ to Twitter с помощью образца, но это может быть полезно посмотреть.

Другие вопросы по тегам