1 место Использование Зеннопостера для социальной сети Pinterest

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
Авторизация:
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);
Привет, спасибо за решения, но вот не могу понять добавляю код авторизации в кубик "Свой C# код" подставляю данные логин/пароль в ответ приходит

C#:
https://yadi.sk/i/V6cYGqOS3NZfZL
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
До 28 строки мы получаем куки и X_CSRFToken, а после этой строки - показан пример отправки запроса на главную страничку пинтереста с использованием этого токена и куков.
В результате выполнения последнего запроса мы получим данные, которые пинтерест выдает нам на главной страничке, а именно - пины других пользователей.
Если вы хотите получить что-то другое - то видимо последний запрос в этой цепочке должен идти в другое место (выполните действия по получению необходимых данных в браузере и проанализируйте запросы мониторингом трафика или фиддлером).
 
  • Спасибо
Реакции: leonidm

jonvy

Client
Регистрация
28.11.2015
Сообщения
305
Благодарностей
17
Баллы
18
Юра привет. Подскажи пожалуйста во сколько потоков ты пины создавал? Как часто к pinterest по API можно обращаться ?
 
  • Спасибо
Реакции: BAZAg

jonvy

Client
Регистрация
28.11.2015
Сообщения
305
Благодарностей
17
Баллы
18
Отсюда вопрос - неужели все действительно просто и понятно, что можно без вопросов разобраться самостоятельно?
Или наоборот в данной теме все настолько сложно, что даже лень задавать вопросы чтобы разобраться и запустить данный комбайн в работу?
Всё настолько не понятно и сложно (как минимум для меня))) что я решил выстрадать твою идею накидав свои шаблоны и с другой партнёркой.
Но за твой труд огромное спасибо.
Если у меня какой затык случается, я или на твой канал на ютубе или в твои шаблоны лезу))
 
Последнее редактирование:
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Юра привет. Подскажи пожалуйста во сколько потоков ты пины создавал? Как часто к pinterest по API можно обращаться ?
1000 обращений в час - это одно обращение каждых 3-4 секунды.
Если картинки готовые - то в один поток достаточно работать :-)
Если с браузером, как в моих шаблонах - то 3 потока достаточно (речь об одном аккаунте).
Если больше аккаунтов - значит нужно больше потоков, но я пока не эксперементировал с большим количеством аккаунтов - еще регистратора на запросах не написал.
 
  • Спасибо
Реакции: leonidm и jonvy

jonvy

Client
Регистрация
28.11.2015
Сообщения
305
Благодарностей
17
Баллы
18
1000 обращений в час - это одно обращение каждых 3-4 секунды.
Ох ёлки)) А я в 20 потоков запулил. Оно мне минут за 15 1100 пинов накидало)) пока твой ответ не прочитал
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Ох ёлки)) А я в 20 потоков запулил. Оно мне минут за 15 1100 пинов накидало)) пока твой ответ не прочитал
Там в заголовках возвращается сколько еще доступно запросов в текущий час - если это значение больше 0 - тогда можно добавлять пины.
Если значение равно 0 или меньше - тогда лучше остановиться (всеравно в ошибки уходить будет).
А так, если не нужно равномерное заполнение пинов в аккаунте можно запустить и в 1000 потоков - и через минуту будет 1000 пинов, после чего брать следующий аккаунт, тогда на час работы понадобится 60 аккаунтов (главное чтобы сам пинтерест не ограничивал количество пинов в минуту...):-)
Но, в действительности я не проверял в таком кардинальном режиме...
 
  • Спасибо
Реакции: leonidm и jonvy

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
До 28 строки мы получаем куки и X_CSRFToken, а после этой строки - показан пример отправки запроса на главную страничку пинтереста с использованием этого токена и куков.
В результате выполнения последнего запроса мы получим данные, которые пинтерест выдает нам на главной страничке, а именно - пины других пользователей.
Если вы хотите получить что-то другое - то видимо последний запрос в этой цепочке должен идти в другое место (выполните действия по получению необходимых данных в браузере и проанализируйте запросы мониторингом трафика или фиддлером).
Спасибо, разобрался)
Остался один маленький нюанс, в кодах почти не силен, требуется нажатие на доску для сохранения пина ( хочу протестировать 1 момент без API )
================
Зеннопостер с генерировал С# код из блока (нажатия на кнопку сохранить пин на доску)
// Конструктор действий, тип RiseEvent
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("p", "innertext", project.Variables["RAZDEL"].Value, "regexp", 0);
if (he.IsVoid) return -1;

// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
he.RiseEvent("click", instance.EmulationLevel);
================
Но при добавлении его в скрипт нажатие не происходит, подскажите как это сделать..
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Спасибо, разобрался)
Остался один маленький нюанс, в кодах почти не силен, требуется нажатие на доску для сохранения пина ( хочу протестировать 1 момент без API )
================
Зеннопостер с генерировал С# код из блока (нажатия на кнопку сохранить пин на доску)
// Конструктор действий, тип RiseEvent
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("p", "innertext", project.Variables["RAZDEL"].Value, "regexp", 0);
if (he.IsVoid) return -1;

// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
he.RiseEvent("click", instance.EmulationLevel);
================
Но при добавлении его в скрипт нажатие не происходит, подскажите как это сделать..
Видимо клик происходит по названию доски, а не по кнопке сохранить...
На сколько я понимаю, необходимо найти необходимую доску, предать туда событие onmouseover
C#:
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("p", "innertext", project.Variables["RAZDEL"].Value, "regexp", 0);
if (he.IsVoid) return -1;
instance.WaitFieldEmulationDelay();
he.RiseEvent("onmouseover", instance.EmulationLevel);
А уже после этого искать на страничке что-то вроде этой кнопки - и уже по ней производить клик (может быть предыдущее событие выполнять и не нужно - может быть сразу производить клик по данной кнопке возле необходимой доски).
HTML:
<button class="NOnrO" aria-label="Сохранить">
    <svg viewBox="4 0 8 16" class="_3F_sI"><path fill-rule="evenodd" d="бла бла бла"></path></svg>
    <span>Сохранить</span>
</button>
 
  • Спасибо
Реакции: leonidm

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
Видимо клик происходит по названию доски, а не по кнопке сохранить...
На сколько я понимаю, необходимо найти необходимую доску, предать туда событие onmouseover
C#:
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("p", "innertext", project.Variables["RAZDEL"].Value, "regexp", 0);
if (he.IsVoid) return -1;
instance.WaitFieldEmulationDelay();
he.RiseEvent("onmouseover", instance.EmulationLevel);
А уже после этого искать на страничке что-то вроде этой кнопки - и уже по ней производить клик (может быть предыдущее событие выполнять и не нужно - может быть сразу производить клик по данной кнопке возле необходимой доски).
HTML:
<button class="NOnrO" aria-label="Сохранить">
    <svg viewBox="4 0 8 16" class="_3F_sI"><path fill-rule="evenodd" d="бла бла бла"></path></svg>
    <span>Сохранить</span>
</button>
При вставке кода в переменную возвращает if (he.IsVoid) return -1; я так понимаю это в том случае если искомый текст не был найден...
Тут дело в походу в другом, после выполнения С# возвращается в переменную код в котором нет (названия досок) да и в принципе вообще ничего нет за что можно было бы зацепится...
В fiddler запрос сохранения на доску виден так
C#:
source_url=%2Fpin%2Fcreate%2Fbutton%2F%3Furl%3Dhttps%253A%252F%252Fgood.com%252Fgraphics-card-1080.html%26media%3Dhttps%253A%252F%252Fpp.userapi.com%252Fc639521%252Fv639521866%252F47878%252FVJFac9W1Zp4.jpg%26description%3Dispolzovanie-zennopostera-dlja-socialnoj-seti-pinterest&data=%7B%22options%22%3A%7B%22description%22%3A%22ispolzovanie-zennopostera-dlja-socialnoj-seti-pinterest%22%2C%22link%22%3A%22https%3A%2F%2Fchooseagood.com%2Fgraphics-card-1080.html%22%2C%22board_id%22%3A%22656399783128315484%22%2C%22method%22%3A%22button%22%2C%22image_url%22%3A%22https%3A%2F%2Fpp.userapi.com%2Fc639521%2Fv639521866%2F47878%2FVJFac9W1Zp4.jpg%22%2C%22share_facebook%22%3Afalse%2C%22share_twitter%22%3Afalse%7D%2C%22context%22%3A%7B%7D%7D
и это схоже с тем кодом который вы прописывали для репин
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
При вставке кода в переменную возвращает if (he.IsVoid) return -1; я так понимаю это в том случае если искомый текст не был найден...
Тут дело в походу в другом, после выполнения С# возвращается в переменную код в котором нет (названия досок) да и в принципе вообще ничего нет за что можно было бы зацепится...
В fiddler запрос сохранения на доску виден так ..... и это схоже с тем кодом который вы прописывали для репин
Первое предложение относится к проекту который будет работать в браузере.
Второе предложение говорит о том, что вы отслеживаете запросы - а значит все таки пытаетесь построить проект без использования браузера.

В первом случае, когда решено делать проект в браузере - необходимо на момент поиска кнопки для клика перейти на страничку с пином, нажать на первую кнопку сохранить и уже выполнять в момент, когда необходимо проявить кнопку Сохранить возле необходимой доски (естественно, что в переменной RAZDEL уже должно быть имя доски).
Дальше уже должен производиться клик по проявившейся кнопке - результатом чего будет выполнено действие РеПин - прикрепление чужого пина на свою доску.

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

Если вы отслеживаете в фиддлере, и видите запрос, который отправляет какие-то данные - то следующим действием должен быть поиск этих данных в предыдущих запросах в том же фиддлере - и как только необходимые данные будут найдены - это и будет тот запрос, который необходимо отправить перед выполнением репина. Результат его выполнения необходимо разобрать регулярными выражениями и подготовить данные для выполнения запроса который выполняет репин.
 
  • Спасибо
Реакции: leonidm

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
Так и должно быть.
В магазине есть 3 уровня категорий.
И только на последнем уровне вложенности есть товары.
Если товара в подкатегории нет - то выключается от дальнейшей работы эта подкатегория статусом 9, чтобы в дальнейшем другие потоки с ней не работали.
Юрий!
А у меня шаблон 002 берет бесконечно странички с ноль товарами и не переходит на другую категорию, можно где-то подправить.
Спасибо.
Скриншот 2017-10-10 13.41.34.png
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Юрий!
А у меня шаблон 002 берет бесконечно странички с ноль товарами и не переходит на другую категорию, можно где-то подправить.
Спасибо.
Посмотреть вложение 23921
Видимо где-то есть ошибка - нужно после данного действия, если есть "0 добавлено в базу" поставить выход с цикла.
 

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
Авторизация:
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);
РеПин:

C#:
data = "source_url=/pin/390054017718938410/&data={\"options\":{\"description\":\"Sculpture created from a variety of found vintage/recycled object Size approx: 10 inches wide x 12 inches high x 6 inches long. One of a kind, original, and signed and dated by the artist. If you would like to see my other items please visit: www.etsy.com/shop/creationeuropeenne WORLDWIDE SHIPPING - Buyers please contact us for costs.\",\"link\":\"https://www.etsy.com/au/listing/249343216/recycling-rusty-robot-sculpture-my-wife?ref=shop_home\",\"title\":\"\",\"board_id\":\"579697851974659291\",\"pin_id\":\"390054017718938410\",\"is_buyable_pin\":false,\"share_facebook\":false,\"share_twitter\":false},\"context\":{}}";
url = "https://www.pinterest.com/resource/RepinResource/create/";
string repin = ZennoPoster.HttpPost(url, data, @"application/x-www-form-urlencoded", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, cookie, project.Profile.UserAgent, false, 0, header);
Как правильно в коде указать репин, пробовал по разному, ответ приходит 400 BAD REQUEST или ok но на аккаунте изменений не происходит..
 

ol1ver

Client
Регистрация
29.08.2013
Сообщения
332
Благодарностей
82
Баллы
28
Юра, не пробовали себя в CPA и тп продаже товаров? С реф. комиссий plati.ru много не заработаешь)
казино, опционы - намного круче.
 

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
Видимо где-то есть ошибка - нужно после данного действия, если есть "0 добавлено в базу" поставить выход с цикла.
Юрий, к сожалению я с С# исключительно на ВЫ, буду очень признателен и благодарен если Вы подправите что нужно и где нужно. Уж очень хочется Вашу работу пройти до конца. Спасибо.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Как правильно в коде указать репин, пробовал по разному, ответ приходит 400 BAD REQUEST или ok но на аккаунте изменений не происходит..
X_CSRFToken, Ид своей доски, ИД пина, ссылку-оригинал, описание - подставили и после этого такая ошибка, или попытались выполнить приведенный фрагмент кода и добавить пин в мою доску решили?
Юра, не пробовали себя в CPA и тп продаже товаров?
С реф. комиссий plati.ru много не заработаешь) казино, опционы - намного круче.
Нет, пока не пробовал - проект нацелен был на техническую реализацию данной возможности, и даже на таком примитивном уровне был получен результат.
Представьте себе что можно получить, когда грамотно вводить ключевые слова, красиво оформлять картинки, делать репины, сливать трафик на более прибыльные проекты.
Может быть я к этому приду со временем - пока все таки мне нравится просто разбираться с тем, как автоматизировать тот или иной процесс Зеннопостером.
Юрий, к сожалению я с С# исключительно на ВЫ, буду очень признателен и благодарен если Вы подправите что нужно и где нужно.
Уж очень хочется Вашу работу пройти до конца.
Спасибо.
Этот же самый шаблон на экшинах приведен в шапке темы.
Через пару дней здесь будет выложен весь этот набор шаблонов повторно.
В данный момент они уже написаны, но не протестированы - по шагам нужно пройтись, проверить правильно ли отрабатывают цикли, нет ли каких-то подобных ошибок которые уводят шаблон в бесконечный цикл.
После чего запишу видео, в первых минутах которого покажу как добавлять шаблоны в Зеннопостер, как смотреть в лог его работы, в сколько потоков запускать.
А дальше хотелось бы все таки подробно пройтись по логике работы самих шаблонов и прояснить какая строка кода что конкретно выполняет.
Собственно наверно проще будет подождать (если нет понимания как самостоятельно пройти шаблон по шагам) пока данная реализация появится здесь.

Кстати, встретилось мне сегодня парочку ссылок, переходы с которых были заблокированы.
Странно, что раньше такое не встречалось.
бан-2.png


бан-пинтерест.png
 
Последнее редактирование:
  • Спасибо
Реакции: Nike59

Platon

Client
Регистрация
26.09.2015
Сообщения
260
Благодарностей
122
Баллы
43
Ага, проверил да, bit.ly блокированы, что я сразу не проверил)))
Нужно искать то что не блокировано.
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Ага, проверил да, bit.ly блокированы, что я сразу не проверил)))
Нужно искать то что не блокировано.
На pp.ua на регистрировать доменов, и использовать их для создания оформленных страничек, на которые будут вести ссылки в Пинах...

Спустя кучу времени наконец-то нашел я решение проблемы с переполнением памяти Зеннопостера.
Речь идет о шаблонах, которые получали информацию в виде xml с магазина, разбирали её по переменным и формировали запрос на добавление в базу данных.
Фрагмент кода был примерно такой:
C#:
string rezult = String.Empty;
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(get);
var x = xDoc.DocumentElement;
foreach(XmlNode xnode in x.ChildNodes) if(xnode.Name=="retval") rezult= xnode.InnerText;
return rezult;
Так как для XmlDocument нельзя вызвать принудительную очистку мусора Dispose, то я предполагал, что как только этот код будет выполнен - Зеннопостер автоматически уничтожит объект.
Но, оказалось это не происходит - и спустя сутки работы он помаленьку начинал кушать всю память компьютера.
Так вот, чтобы таких проблем не было необходимо принудительно самостоятельно удалить созданный объект когда мы завершили с ним работу.
C#:
string rezult = String.Empty;
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(get);
var x = xDoc.DocumentElement;
foreach(XmlNode xnode in x.ChildNodes) if(xnode.Name=="retval") rezult= xnode.InnerText;
xDoc = null; // уничтожили объект...
return rezult;
Решил описать решение этой проблемы тут, так как все шаблоны с темы использовали данный код.
Собственно после добавления всего одной строчки xDoc = null Зеннопостер теперь не пожирает память.
 

Platon

Client
Регистрация
26.09.2015
Сообщения
260
Благодарностей
122
Баллы
43
не нашел как там регистрировать домены))
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113

kagorec

Client
Регистрация
24.08.2013
Сообщения
978
Благодарностей
521
Баллы
93
Поздравляю с победой в первом видео конкурсе!!!
---
Шаблоны используют API сервисов pinterest, blogger, dijiseller, plati.io, coinurl.com
Подскажи пожалуйста, можно ли картинки загружать в blogger.com через API ? - наводящие ответы приветствуются
п.с. гугление не раскрыло "тайны"
 
Последнее редактирование:
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Поздравляю с победой в первом видео конкурсе!!!
---

Подскажи пожалуйста, можно ли картинки загружать в blogger.com через API ? - наводящие ответы приветствуются
п.с. гугление не раскрыло "тайны"
Спасибо!

В блоггер я забрасывал готовые ссылки на картинки с пинтереста.
Использовать забрасывать туда картинки через API я не пробовал :(
 

eagleowl

Client
Регистрация
03.11.2012
Сообщения
263
Благодарностей
30
Баллы
28
Радуйтесь что эти bit.ly блокированы. Вообще не советую ими пользваться. Рассказываю - в свое время напер туда линков, потом случайно показал одну из страниц знакомому, который в Голландии живет. Он пишет - так у тебя линки не работают. Я пробую - у меня все нормально. А у него при нажатии на линк bit.ly выдает - "ссылка недоступна в вашей стране" и никуда не редиректит. Вот такая херня этот bit.ly. Заблочит линки где-то а вы и знать не будете.

Я себе поставил на свой домен вот этот скрипт: http://yourls.org/
Это конечно не годится если домен заблочат, но у меня пока до такого не доходило.
 

Eduardo

Client
Регистрация
05.01.2016
Сообщения
28
Благодарностей
6
Баллы
3
Это конечно не годится если домен заблочат, но у меня пока до такого не доходило.
А редирект на что? Выше в топиках я уже про это писал, про сокращатели ссылок. Редирект можно попробывать настроить, чтобы все ваши созданные сокращатели взаимодействовали между собой через базу данных. Тогда и головной боли не будет.
К примеру один из линков в бане на каком-нибудь ресурсе, сразу срабатывает редирект.
 

Nike59

Client
Регистрация
05.08.2011
Сообщения
122
Благодарностей
122
Баллы
43
А редирект на что? Выше в топиках я уже про это писал, про сокращатели ссылок. Редирект можно попробывать настроить, чтобы все ваши созданные сокращатели взаимодействовали между собой через базу данных. Тогда и головной боли не будет.
К примеру один из линков в бане на каком-нибудь ресурсе, сразу срабатывает редирект.
Для этих целей обычно используется TDC, поскольку позволяет гибко производить переадресацию и перенаправлять трафик по разнообразным параметрам: мобильный, дескстопный, по юзер-агенту, гео, рефереру и т.п. или просто на другой оффер, не теряя трафик.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 275
Баллы
113
Для этих целей обычно используется TDC, поскольку позволяет гибко производить переадресацию и перенаправлять трафик по разнообразным параметрам: мобильный, дескстопный, по юзер-агенту, гео, рефереру и т.п. или просто на другой оффер, не теряя трафик.
Да, но URL TDS может тоже улететь в бан. Что делать тогда, переносить TDS?
 

Nike59

Client
Регистрация
05.08.2011
Сообщения
122
Благодарностей
122
Баллы
43
Да, но URL TDS может тоже улететь в бан. Что делать тогда, переносить TDS?
Так делай хитрые редиректы типа двойных, в которых боты поисковиков путаются и могут пройти только живые модераторы. Но такое очень редко бывает, если тема не адалт и не совсем чернуха.
 

sidor800

Client
Регистрация
16.04.2013
Сообщения
123
Благодарностей
41
Баллы
28
У меня вопрос по постеру на блогер
Код:
redirect_uri=http://blog.yosyfovych.te.ua/administrator/&response_type=
домен blog.yosyfovych.te.ua откуда взялся? Привязаный к блогеру? Какой параметр к redirect_uri= можно ставить вместо этого домена?
Код:
https://www.googleapis.com/blogger/v3/blogs/{-Variable.blodId-}/posts?access_token={-Variable.access_token-}
Блоги в которые можно постить как привязываются к api? Те которые находятся на аккаунте с api или те где есть права постить в блог.
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 432
Баллы
113
Del
 
Последнее редактирование:

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