Скрипт постинга в инстаграм
Приветствую! Как много в этом мире интересного, особенно интересных товаров, которые так и просятся что-бы их купили, но увы за всем не уследишь, всё не изучишь и уж тем более не купишь. По этому в погоне за вниманием потенциальных покупателей, клиентов и вообще за публикой, используются все доступные способы. В том числе широкое освещения своей продукции или своей личности в социальных сетях. Если раньше больше всего были актуальны ВК и Одкл, то сегодня популярность постепенно завоевывает Instagram, которому все больше и больше уделяется внимания пользователей, в ущерб иным соцсетям. На этом фоне, среди торговцев стало актуальным, размещение в инстаграм фотографий продаваемых ими товаров, что несомненно очень удобно и хорошо для повышения числа продаж.
Но как автоматизировать процесс публикации фотографий в инстаграм, например с сайта интернет магазина? Для этого подойдет хорошее решение, скрипт PHP для постинга фотографий в инстаграм в автоматическом режиме с нужным описанием и хештегами. Мною был разработан и написан такой скрипт, который легко интегрируется в любой действующий сайт, и в последующем позволяет публиковать контент в Instagram, как в автоматическом режиме по расписанию, так и в ручном.
Данное решение также можно интегрировать в сайты совместных покупок, интернет магазины, блоги и так далее. Все технические моменты я как всегда беру на себя, все что вам остается сделать — это оформить заказ на его интеграцию.
Более того, данное решение можно использовать автономно без сайта и каталога товаров. При желании есть возможность реализовать постинг данных из Excel таблицы (ссылка на фото, описание, хештеги). Таким образом скриптом может пользоваться любой желающий, публикуя большие объемы контента в автоматическом режиме прямиком в инстаграм.
Если вам нужен простой скрипт постинга фото, то с ним вы можете ознакомиться ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | <?php function SendRequest($url, $post, $post_data, $user_agent, $cookies) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://instagram.com/api/v1/'.$url); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if($post) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); } if($cookies) { curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); } else { curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); } $response = curl_exec($ch); $http = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return array($http, $response); } function GenerateGuid() { return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535)); } function GenerateUserAgent() { $resolutions = array('720x1280', '320x480', '480x800', '1024x768', '1280x720', '768x1024', '480x320'); $versions = array('GT-N7000', 'SM-N9000', 'GT-I9220', 'GT-I9100'); $dpis = array('120', '160', '320', '240'); $ver = $versions[array_rand($versions)]; $dpi = $dpis[array_rand($dpis)]; $res = $resolutions[array_rand($resolutions)]; return 'Instagram 4.'.mt_rand(1,2).'.'.mt_rand(0,2).' Android ('.mt_rand(10,11).'/'.mt_rand(1,3).'.'.mt_rand(3,5).'.'.mt_rand(0,5).'; '.$dpi.'; '.$res.'; samsung; '.$ver.'; '.$ver.'; smdkc210; en_US)'; } function GenerateSignature($data) { return hash_hmac('sha256', $data, 'b4a23f5e39b5929e0666ac5de94c89d1618a2916'); } function GetPostData($filename) { if(!$filename) { echo "The image doesn't exist ".$filename; } else { $post_data = array('device_timestamp' => time(), 'photo' => '@'.$filename); return $post_data; } } // Set the username and password of the account that you wish to post a photo to $username = 'ig_username'; $password = 'ig_password'; // Set the path to the file that you wish to post. // This must be jpeg format and it must be a perfect square $filename = 'pictures/test.jpg'; // Set the caption for the photo $caption = "Test caption"; // Define the user agent $agent = GenerateUserAgent(); // Define the GuID $guid = GenerateGuid(); // Set the devide ID $device_id = "android-".$guid; /* LOG IN */ // You must be logged in to the account that you wish to post a photo too // Set all of the parameters in the string, and then sign it with their API key using SHA-256 $data ='{"device_id":"'.$device_id.'","guid":"'.$guid.'","username":"'.$username.'","password":"'.$password.'","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'; $sig = GenerateSignature($data); $data = 'signed_body='.$sig.'.'.urlencode($data).'&ig_sig_key_version=4'; $login = SendRequest('accounts/login/', true, $data, $agent, false); if(strpos($login[1], "Sorry, an error occurred while processing this request.")) { echo "Request failed, there's a chance that this proxy/ip is blocked"; } else { if(empty($login[1])) { echo "Empty response received from the server while trying to login"; } else { // Decode the array that is returned $obj = @json_decode($login[1], true); if(empty($obj)) { echo "Could not decode the response: ".$body; } else { // Post the picture $data = GetPostData($filename); $post = SendRequest('media/upload/', true, $data, $agent, true); if(empty($post[1])) { echo "Empty response received from the server while trying to post the image"; } else { // Decode the response $obj = @json_decode($post[1], true); if(empty($obj)) { echo "Could not decode the response"; } else { $status = $obj['status']; if($status == 'ok') { // Remove and line breaks from the caption $caption = preg_replace("/\r|\n/", "", $caption); $media_id = $obj['media_id']; $device_id = "android-".$guid; $data = '{"device_id":"'.$device_id.'", "guid":"'.$guid.'", "media_id":"'.$media_id.'", "caption":"'.trim($caption).'", "device_timestamp":"'.time().'", "source_type":"5", "filter_type":"0", "extra":"{}", "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'; $sig = GenerateSignature($data); $new_data = 'signed_body='.$sig.'.'.urlencode($data).'&ig_sig_key_version=4'; // Now, configure the photo $conf = SendRequest('media/configure/', true, $new_data, $agent, true); if(empty($conf[1])) { echo "Empty response received from the server while trying to configure the image"; } else { if(strpos($conf[1], "login_required")) { echo "You are not logged in. There's a chance that the account is banned"; } else { $obj = @json_decode($conf[1], true); $status = $obj['status']; if($status != 'fail') { echo "Success"; } else { echo 'Fail'; } } } } else { echo "Status isn't okay"; } } } } } } ?> |
Инстаграм — по статистике одна из самых быстрорастущих соцсетей, в российском сегменте интернета занимающая 5 место по числу пользователей, и данный показатель только растет. Чем не могут похвастаться другие популярные соцсети который уже были на пике своей успешности и на текущий момент показывают отрицательную динамику роста, возможно отчасти это связано с развитием мобильного сегмента интернет.
Похожие записи
Оставить комментарий
Full Stack
Senior, Architect
предложить оффер
- jQuery: как получить значение атрибута?
- Интеграция с API ОСАГО сайта sravni.ru
- PHP работа с изображением, класс SimpleImage
- Комментарии на PHP, Ajax, mySQL
- PHP: Категории бесконечного уровня вложенности.
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Как создать Telegram-бота с авторизацией через сайт к записи
- PHP скрипт: каталог закладок на сайты к записи
- Валидация на PHP к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Подключение(интеграция) приема платежей WeChat Pay на сайте к записи
- Интеграция Тинькофф банк Эквайринг на сайт для приема платежей к записи
Archive
- +2024 (7)
- Сентябрь 2024 (1)
- Август 2024 (5)
- Май 2024 (1)
- +2023 (27)
- Ноябрь 2023 (1)
- Октябрь 2023 (13)
- Сентябрь 2023 (10)
- Апрель 2023 (1)
- Март 2023 (1)
- Февраль 2023 (1)
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (36)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (41)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (7)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Как добавить алиас сетевого интерфейса в Centos 7 (Linux) 23.09.2024
- Вывести в меню индикатор новых новостей и статей на сайте Тильда 28.08.2024
- Свой сетевой диск для iPhone — поднимаем Samba на Centos 27.08.2024
- Бекап, сохранение и восстановление БД MySQL 21.08.2024
- Авторизация SSH с помощью ключа в Putty 20.08.2024