رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال عکس به اینستاگرام توسط php
#1
سلام دوستان

کسی کدی امتحان کرده که جواب گرفته باشه  و تونسته باشه یه عکس رو از طریق PHP به اکانته خودش تو اینستاگرام ارسال کنه ؟؟؟


من بعد از جستجوی زیاد به این کدها رسیدم ولی مشکل داره , اول که ارور Fail رو میداد و بعد که درستش کردم هیچ خروجی بهم نمیده , کسی می دونه مشکلش چیه یا نمونه ای سراغ دارید که جواب گرفته باشید ؟؟

ممنون میشم کمک کنید


<?php
function SendRequest($url, $post, $post_data, $user_agent, $cookies) {
   $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://i.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 = 'user';
$password = '123';

// Set the path to the file that you wish to post.
// This must be jpeg format and it must be a perfect square
$filename = '1.jpg';

// Set the caption for the photo
$caption = "Test";

// 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 = json_encode(array(
“device_id” => $device_id,
“guid” => $guid,
“media_id” => $media_id,
“caption” => $caption,
“device_timestamp” => time(),
“source_type” => 5,
“filter_type” => 0,
“extra” => array(),
“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";
   }
   }
   }
   }
   }
}






?>
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان