Перейти к содержимому



Купить ссылку здесь
Фотография
- - - - -

PHP код постинга фото Инстаграм

Форум ZiSMO.biz
2
Сообщений в теме: 2

OFFLINE Отправлено

megasitekinor
группа пользователя

    ===Император===

  • Cообщений: 901
  • Друзей:1691
  • Поинты: 292
  • Предупреждений: 10
  • Онлайн:15д 19ч 36м
13

Появилась потребность данного чуда, тот что есть в паблике не актуален .. не работает , может кто сможет подшаманить  или есть решение на C#

<?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 = '*****';
$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 = 'people/1.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";
                    }
                }
            }
        }
    }
}
?>




    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

CRfrost
группа пользователя

    Новичок

  • Cообщений: 83
  • Друзей:2
  • Поинты: 17
  • Предупреждений: 0
  • Онлайн:2д 14ч 24м
0

Могу поковыряться в чужом коде за 1к рублей, если сами не хотите. 

curl_setopt($ch, CURLOPT_URL, 'https://instagram.com/api/v1/'.$url);

У инсты другая ссылка на API, изначально нужно заменить ссылки на действующие API.

 

Опять же моё сомнение может быть не верным, потому что не известно что вы вообще хотите сделать, потому как в коде не объявлена переменная, а параметры я так понимаю именно в ней.

$url

Сообщение отредактировал CRfrost: 19 04 2016 - 10:25

    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

megasitekinor
группа пользователя

    ===Император===

  • Cообщений: 901
  • Друзей:1691
  • Поинты: 292
  • Предупреждений: 10
  • Онлайн:15д 19ч 36м
13

за 1 к  мне сделают готовое решение на C#  


    • 0
  • Наверх
  • Ответить



Напишите свое сообщение