Авторизация на C# pintеrest

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
Добрый всем день
Есть скрипт авторизации на pintеrest

C#:
string mail = "[email protected]";
string password = "password123445";
string data = "source_url=/&data={\"options\":{\"username_or_email\":\""+mail+"\",\"password\":\""+password+"\"},\"context\":{}}";
string url = "https://www.pinterest.com/resource/UserSessionResource/create/";
string X_CSRFToken = "K4C0QUu35Eoq1xjajbMluw7hOKibpQSW";
string[] header = new string[] { "Accept: application/json, text/javascript, */*; q=0.01",
            "Accept-Language: en-US,en;q=0.5",
            "Cache-Control: no-cache",
            "DNT: 1",
            "Host: www.pinterest.com",
            "Origin: https://www.pinterest.com",
            "Referer: https://www.pinterest.com/",
            "X-APP-VERSION: 18733c1",
            string.Format(@"X-CSRFToken: {0}", X_CSRFToken),
            "X-NEW-APP: 1",
            "X-Pinterest-AppState: active",
            "X-Requested-With: XMLHttpRequest"
};
string auth = ZennoPoster.HttpPost(url, data, @"application/x-www-form-urlencoded", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, "_auth=0; csrftoken=K4C0QUu35Eoq1xjajbMluw7hOKibpQSW", project.Profile.UserAgent, false, 0, header);

Regex re_cookie = new Regex(@"(?<=Set-Cookie:).*?(?=;)");
MatchCollection auth_cookie = re_cookie.Matches(auth);
List<string> list_cookie = new List<string>();
for (int i = 0; i < auth_cookie.Count; i++) {
    if(auth_cookie[i].Value.Contains("csrftoken") )X_CSRFToken = auth_cookie[i].Value.ToString().Split('=')[1].Trim();
    list_cookie.Add(auth_cookie[i].Value.Trim());
}
string cookie = string.Join("; ", list_cookie);

url = "https://www.pinterest.com/";
header = new string[] { "Accept: application/json, text/javascript, */*; q=0.01",
            "Accept-Language: en-US,en;q=0.5",
            "Cache-Control: no-cache",
            "DNT: 1",
            "Host: www.pinterest.com",
            "Origin: https://www.pinterest.com",
            "Referer: https://www.pinterest.com/",
            "X-APP-VERSION: 18733c1",
            string.Format(@"X-CSRFToken: {0}", X_CSRFToken),
            "X-NEW-APP: 1",
            "X-Pinterest-AppState: active",
            "X-Requested-With: XMLHttpRequest"
};

return ZennoPoster.HttpGet( url, "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000, cookie, project.Profile.UserAgent, true, 0, header);
Все работает как часы, но смущает момент постоянной авторизации, подскажите как после того как авторизовавшись на сервисе 1 раз при обращении повторно не авторизовываться, а брать эти данные из файла.... Научился сохранять куки, но дальше дело не идет... подскажите..
 

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113
Ну после авторизации сохраняем куки и далее уже в следующих запросах их подставляем. Как то так.
 

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
Ну после авторизации сохраняем куки и далее уже в следующих запросах их подставляем. Как то так.
Куки сохраняю, выполняю скрипт повторно с подставленными данными из переменной, но не работает.. Не силен в коде, нужна помощь)
 

Санёк

Client
Регистрация
30.08.2013
Сообщения
325
Благодарностей
111
Баллы
43
Зачем вы используете такие серьёзные наработки не зная языка, всё реализуемо обычными кубиками, да, чуть больше чем один, но главное вы поймете суть того, что делаете. Фидлер Вам в помощь, так же на просторах интернета есть курсы Растоникса, и прочие примеры по работе с запросами через ЗенноПостер. Ибо если вы решили начать работу с Зенно, не самое разумное решение начинать с С# кода.
 

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
Зачем вы используете такие серьёзные наработки не зная языка, всё реализуемо обычными кубиками, да, чуть больше чем один, но главное вы поймете суть того, что делаете. Фидлер Вам в помощь, так же на просторах интернета есть курсы Растоникса, и прочие примеры по работе с запросами через ЗенноПостер. Ибо если вы решили начать работу с Зенно, не самое разумное решение начинать с С# кода.
Кубиками вопрос решить не удалось (post/get) pinterest в ответ приходит информация о том что нужно включить JavaScript по этому пошел путем через код, через фидлер и путем небольшого преобразования кода, большую часть вопросов ( по созданию pin/board/like и т.д) решен, просто остался один открытый вопрос на который нужно найти ответ...
 

Санёк

Client
Регистрация
30.08.2013
Сообщения
325
Благодарностей
111
Баллы
43
Кубиками вопрос решить не удалось (post/get) pinterest в ответ приходит информация о том что нужно включить JavaScript по этому пошел путем через код, через фидлер и путем небольшого преобразования кода, большую часть вопросов ( по созданию pin/board/like и т.д) решен, просто остался один открытый вопрос на который нужно найти ответ...
Выше верно подсказывают, необходимо сохранить куки, потом просто подгружать и обычным кубиком проверить не устарела ли сессия, если всё норм использовать эти куки для дальнейшей работы., если нет, удаляем старое и логинемся повторно, с сохранением куков.
 

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
Выше верно подсказывают, необходимо сохранить куки, потом просто подгружать и обычным кубиком проверить не устарела ли сессия, если всё норм использовать эти куки для дальнейшей работы., если нет, удаляем старое и логинемся повторно, с сохранением куков.
Спасибо за ответ! Но основной вопрос и заключается в том как уже взятые куки, подставить в код правильно! для Авторизации
Я примерно понимаю что делать нужно так, но прут ошибки..

  1. // берем куки
  2. string cookie = project.Variables["cookies"].Value;

  1. string cookie = "+cookies+";

  2. url = "https://www.pinterest.com/";
  3. header = new string[] { "Accept: application/json, text/javascript, */*; q=0.01",
  4. "Accept-Language: en-US,en;q=0.5",
  5. "Cache-Control: no-cache",
  6. "DNT: 1",
  7. "Host: www.pinterest.com",
  8. "Origin: https://www.pinterest.com",
  9. "Referer: https://www.pinterest.com/",
  10. "X-APP-VERSION: 18733c1",
  11. string.Format(@"X-CSRFToken: {0}", X_CSRFToken),
  12. "X-NEW-APP: 1",
  13. "X-Pinterest-AppState: active",
  14. "X-Requested-With: XMLHttpRequest"
  15. };

  16. return ZennoPoster.HttpGet( url, "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000, cookie, project.Profile.UserAgent, true, 0, header);
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)