Что я пытаюсь сделать:
Напишите Generic Library in C#
для обработки OAuth Flow для каждой службы (так же, как Twitter, LinkedIn и Foursquare).Самое сложное в том, что я хочу simulate all the user input in code
, чтобы не требовалось никаких действий пользователя, чтобы нажимать на кнопки типа «Хорошо, я позволю» или даже писать свое имя пользователя / пароль.
Сомнения, которые у меня есть до сих пор:
1 - Что такое использование authenticity_token
в твиттерах API?
2 - Какие факторы используют все сервисы, так что яможет реализовать общее использование OAuth Flow.Например, я обнаружил, что первый шаг действительно легко сделать универсальным методом для выполнения.Все, что мне нужно сделать, это изменить URL-адрес для webRequest, и BAM, у меня есть токены запроса.
3 - Как получить верификатор для каждой услуги?Например, в LinkedIn Service
мне удалось проанализировать страницу, чтобы получить это значение, но я не могу найти этот verifier
для Twitter API, например.Даже при авторизации в браузере моего приложения я не вижу Verifier
ни в одном HTML во время потока, ни в любом генерирующем его JavaScript.
Наблюдения:
1 - Iзнаю, что существует множество библиотек OAuth, например this или that , но нет библиотеки, которая позволяла бы мне делать то, что я хочу, то есть аутентифицировать и авторизоватьпользователь, без запроса какого-либо пользовательского ввода.
2 - я никоим образом не могу запросить ввод пользователя.Все значения, такие как имя пользователя и пароль для аутентификации, будут жестко закодированы, и каждый пользователь будет использовать одну и ту же учетную запись для этих запросов.
3 - я также знаю, что здесь есть другие посты, которые я написал,с почти такими же сомнениями, и причина, по которой я переписываюсь, состоит в том, чтобы попытаться сделать это более ясным и свежим.
4 - Заранее извините за любую английскую ошибку или неправильное понимание концепций.
Пример базового кода:
Это, например, метод, который я использую (который широко доступен за рубежом) для получения токенов запроса для любой услуги.Все, что мне нужно сделать, это изменить значение REQUEST_TOKEN
на конкретный URL, который будет использоваться для службы, чтобы я мог получить токены для LinkedIn, Twitter или Foursquare, например.Но мне не удается применить тот же процесс на других этапах.
public string AuthorizationLinkGet()
{
string ret = null;
string response = oAuthWebRequest(Method.GET, REQUEST_TOKEN, String.Empty);
if (response.Length > 0)
{
//response contains token and token secret. We only need the token.
NameValueCollection qs = HttpUtility.ParseQueryString(response);
if (qs["oauth_callback_confirmed"] != null)
{
if (qs["oauth_callback_confirmed"] != "true")
{
throw new Exception("OAuth callback not confirmed.");
}
}
if (qs["oauth_token"] != null)
{
ret = AUTHORIZE + "?oauth_token=" + qs["oauth_token"];
}
}
return ret;
}