কীভাবে এপিআই ব্যবহার করে ইনস্টাগ্রামে ছবি পোস্ট করবেন


109

আমি একটি পিএইচপি অ্যাপ্লিকেশন তৈরি করছি যা ব্যবহারকারীর দ্বারা আপলোড করা ছবি সরাসরি ইনস্টাগ্রামে পোস্ট করা দরকার তবে তাত্ক্ষণিক অনুসন্ধানের পরে আমি দেখতে পেলাম যে এপিআইতে এই জাতীয় কোনও কার্য নেই :( এবং এটি অদ্ভুত বোধ করে ... কারণ তাদের একটি সরবরাহ করা উচিত। I পিএইচপি ব্যবহার করে ছবি আপলোড করার জন্য অন্য কোনও উপায় (অ্যান্ড্রয়েড এবং আইওএস অ্যাপ্লিকেশন বাদে) আছে কিনা তা নিশ্চিত নই। যদি কোনও সম্ভাবনা থাকে তবে দয়া করে আমাকে কোনও ধরণের ধারণা দিন।

আমি এটাও পড়েছি,

আমি কীভাবে পিএইচপি ব্যবহার করে ইনস্টাগ্রামের সাথে একটি লিঙ্ক এবং ফটো ভাগ করব


2
এপিআইয়ের মাধ্যমে ইনস্টাগ্রামে ছবি পোস্ট করা সম্ভব নয়।
অমল মুরালি

3
আমি অবাক হয়েছি তারা কীভাবে - blog.hootsuite.com/schedule-instagram-posts-in-hootsuite - এটি করুন ... (ব্লগ ঘোষণা 8 ঘন্টা আগে পোস্ট করা হয়েছিল)
মার্স রবার্টসন

1
@ মিচালস্টেফানো আমিও এটি একটি ভাল প্রশ্ন মনে করেছি। এই ব্লগ ঘোষণায় হুটসুয়েটের একটি মন্তব্যও রয়েছে (নিবন্ধের নীচের মন্তব্যে বিভাগে) যে এপিআই সীমাবদ্ধতার কারণে ইনস্টাগ্রামে কোনও প্রকৃত সরাসরি পোস্টিং নেই এবং চূড়ান্ত পোস্টিং ইনস্টাগ্রামে করতে হবে।
thecommonthread

2019 সালের মাঝামাঝি সম্পর্কে কী? কোন পরিবর্তন আছে?
ইউজারলন্ড

উত্তর:


81

আপনি যে লিঙ্কটি ভাগ করেছেন তা যদি আপনি পড়ে থাকেন তবে গৃহীত উত্তরটি হ'ল:

আপনি API এর মাধ্যমে ইনস্টাগ্রামে ছবি পোস্ট করতে পারবেন না।

দেখে মনে হচ্ছে আপনি যদিও পিসিতে ইনস্টাগ্রাম অনুকরণ করতে পারেন।

ব্লুস্ট্যাকস এমন একটি এমুলেটর যা আপনাকে আপনার পিসি / ম্যাক ইত্যাদিতে অ্যান্ড্রয়েড অ্যাপ্লিকেশন চালাতে দেয় etc.

আমি নিশ্চিত না যদিও এটি কতটা ভাল কাজ করে।


58
ঠিক আছে যদি এটি করার কোনও উপায় নেই তবে আমি মনে করি না যে 'অন্য' উপায় আছে।
আলবিজি

1
@ বার্ট @ রিতু পোস্ট করার সময় এটি ইনস্টাগ্রাম করেছিল এবং তা posts.soনয়postso.com
আলবজি

2
@ ইউসামা দুর্ভাগ্যক্রমে সরকারীভাবে নয় তবে আমি গুজব শুনেছি যে আপনি যদি তাদের ওয়েবসাইটে যান এবং মোবাইল ভিউতে এটি স্কেল করেন তবে আপনি পারেন you যদিও আমি নিজে চেষ্টা করে
দেখিনি

1
@ আলবজি যদি আপনি গুগল ক্রোম ব্যবহার করেন; ইনস্টাগ্রাম ওয়েবসাইটে পৌঁছে এবং ডান ক্লিক করুন এবং "পরিদর্শন করুন" এটির আকার পরিবর্তন করুন এবং শিরোনামটিকে একটি মোবাইল ব্রাউজারের স্বাক্ষরে বদলে দেবে use আপনাকে একবার "পরিদর্শন করুন" এ ইনস্টাগ্রাম পৃষ্ঠাটি রিফ্রেশ করতে হতে পারে তবে এটি আপনাকে মোবাইল হিসাবে ওয়েবসাইটটি ব্যবহার করতে দেয় এবং ফটো পোস্ট করতে পারে এবং কী নয়। যাহোক; এটি এপিআই প্রশ্নের সাথে সহায়তা করে না। আমি পিএইচপি থেকে ইনস্টাগ্রামে আমাদের দলগুলিকে চূড়ান্ত স্কোর দেখিয়ে একটি ফটো পোস্ট করতে সক্ষম হতে চাই।
ডসন ইরভাইন

1
ন্যায্য বিন্দু. @ ব্রোডা নোয়েল, সম্ভবত আমার এটিকে কোনও 'অফিসিয়াল' উপায়ে পরিবর্তন করা উচিত।
আলবিজি

102

হালনাগাদ:

ইনস্টাগ্রাম এখন অ্যাকাউন্টগুলি নিষিদ্ধ করছে এবং এই পদ্ধতির ভিত্তিতে চিত্রগুলি সরিয়ে ফেলছে। সাবধানতার সাথে ব্যবহার করুন।


দেখে মনে হচ্ছে যে প্রত্যেকে এই প্রশ্নের উত্তর দিয়ে গেছে এমন কিছু দিয়ে গেছে it can't be doneযা কিছুটা সঠিক। আনুষ্ঠানিকভাবে, আপনি তাদের এপিআই দিয়ে ইনস্টাগ্রামে কোনও ফটো পোস্ট করতে পারবেন না। তবে, আপনি যদি প্রকৌশলীকে API বিপরীত করেন তবে আপনি এটি করতে পারেন।

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 = '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";
                    }
                }
            }
        }
    }
}

উপরের কোডটি কেবল আপনার পাঠ্য সম্পাদকে অনুলিপি করুন এবং আটকান, সেই অনুযায়ী কয়েকটি ভেরিয়েবল পরিবর্তন করুন এবং ভয়েলা! আমি এই সম্পর্কে একটি নিবন্ধ লিখেছিলাম এবং আমি এটি অনেকবার করেছি। এখানে একটি ডেমো দেখুন ।


1
ফোন ব্যবহার না করে উপরের কোড ব্যবহার করে লগইন করতে অক্ষম। আমি মাত্র পিসি ব্যবহার করে লোকালহোস্টে ব্যবহার করেছি এবং ঠিক ঠিক এর মতোই ত্রুটি বার্তাটি পেয়েছি **** লগইন করার চেষ্টা করার সময় সার্ভার থেকে খালি সাড়া পাওয়া গেছে *** কীভাবে ত্রুটিটি সমাধান করা যায়
রাবেশ লাল শ্রেষ্ঠ

1
ইতিমধ্যে এই কোডটি দিয়ে তৈরি কোনও ওয়ার্কিং। নেট বৈকল্পিক রয়েছে? আমি পিএইচপি এবং এই কোডটির একটি নেট সংস্করণ দিয়ে কাজ করতে পারি না সত্যই দরকারী!
ইয়োসাইক

1
আমি নতুন ইনস্টাগ্রাম অ্যাকাউন্টে সফলভাবে স্ক্রিপ্টটি চালাতে সক্ষম হয়েছি।
loretoparisi

2
যদি আপনি পাচ্ছেন তবে status isnt okayনিশ্চিত হয়ে নিন যে সিআরএল-এর একটি কুকিজ.এসটিএসটি ফাইল তৈরি করার অনুমতি রয়েছে। chmod 777 /directoryএটি করবে (সতর্কতা অবলম্বন করুন) আমি আপনার স্ক্রিপ্ট থেকে একটি সাফল্যের বার্তা পাচ্ছি, কিন্তু পোস্টটি ইনস্টাগ্রামে প্রদর্শিত হচ্ছে না। এটি কি এখনও কাজ করে?
kmoney12

8
কোডটি দুর্দান্ত কাজ করে তবে গাইড এবং ডিভাইসিড প্রতিবার পরিবর্তন হয় এবং ইনস্টাগ্রাম একটি একক সফল পোস্টের পরে আমার অ্যাকাউন্ট নিষিদ্ধ করে। ফটোটিও সরানো হয়েছে।
অ্যালপ আল্টুনেল

27

আপডেট এখন এটি সম্ভব:

https://developers.facebook.com/docs/instagram-api/content-publishing

সামগ্রী প্রকাশনা API হ'ল ইন্সটাগ্রাম গ্রাফ এপিআই শেষ পয়েন্টগুলির একটি উপসেট যা আপনাকে মিডিয়া অবজেক্ট প্রকাশ করার অনুমতি দেয়। এই এপিআই দিয়ে মিডিয়া অবজেক্টগুলি প্রকাশ করা একটি দুটি পদক্ষেপ প্রক্রিয়া - আপনি প্রথমে একটি মিডিয়া অবজেক্ট কনটেইনার তৈরি করেন, তারপরে আপনার ব্যবসায়িক অ্যাকাউন্টে ধারকটি প্রকাশ করুন।


22
এটি লক্ষণীয় যে "কন্টেন্ট পাবলিশিং এপিআই কেবল ফেসবুক বিপণন অংশীদার এবং ইনস্টাগ্রাম অংশীদারদের সাথে বন্ধ বিটাতে রয়েছে We আমরা এই মুহুর্তে নতুন আবেদনকারীদের গ্রহণ করছি না।"
উইলিয়াম রিড

এটি কি কেবল ব্যবসায়ের অ্যাকাউন্টগুলির জন্য প্রযোজ্য?
সানকাচার 21

এ কেমন উত্তর? এটি সম্ভব নয়, এই এপিআইটি কেবল অংশীদারদের জন্য ...
মতেজ জে

1
এটি পৃষ্ঠা খুঁজে পাওয়া যায় না বলে!
মোহাম্মদ ইমরান

12

ইনস্টাগ্রাম এখন নতুন সামগ্রী প্রকাশনা বিটা সমাপ্তিগুলি ব্যবহার করে ব্যবসায়দের তাদের পোস্টের সময়সূচী তৈরি করার অনুমতি দেয়।

https://developers.facebook.com/blog/post/2018/01/30/instagram-graph-api-updates/

তবে এই ব্লগ পোস্টটি - https://business.instagram.com/blog/instagram-api-features-updates - এটিকে স্পষ্ট করে তোলে যে তারা কেবলমাত্র তাদের ফেসবুক বিপণন অংশীদার বা ইনস্টাগ্রাম অংশীদারদের জন্য সেই API খুলছে।

নির্ধারিত পোস্টগুলি শুরু করতে, দয়া করে আমাদের ফেসবুক বিপণন অংশীদার বা ইনস্টাগ্রাম অংশীদারদের মধ্যে একটির সাথে কাজ করুন।

ফেসবুকের এই লিঙ্কটি - https://developers.facebook.com/docs/instagram-api/content-publishing - এটিকে বন্ধ বিটা হিসাবে তালিকাভুক্ত করে।

সামগ্রী প্রকাশনা এপিআই কেবল ফেসবুক বিপণন অংশীদার এবং ইনস্টাগ্রাম অংশীদারদের সাথে বদ্ধ বিটাতে রয়েছে। আমরা এই মুহুর্তে নতুন আবেদনকারীদের গ্রহণ করছি না।

তবে আপনি এটি কীভাবে করবেন:

আপনার এখানে একটি ফটো আছে ...

https://www.example.com/images/bronz-fonz.jpg

আপনি এটি "# ব্রোঞ্জফোনজ" হ্যাশট্যাগ দিয়ে প্রকাশ করতে চান।

আপনি /user/mediaধারকটি এভাবে তৈরি করতে ব্যবহার করতে পারেন :

POST graph.facebook.com 
  /17841400008460056/media?
    image_url=https%3A%2F%2Fwww.example.com%2Fimages%2Fbronz-fonz.jpg&
    caption=%23BronzFonz

এটি কোনও ধারক আইডি ফেরত দেবে (আসুন 17889455560051444 বলে দিন) যা আপনি এরপরে / ব্যবহারকারী / মিডিয়া_প্রকাশ প্রান্ত ব্যবহার করে প্রকাশ করবেন:

POST graph.facebook.com
  /17841405822304914/media_publish
    ?creation_id=17889455560051444

ডক্স থেকে এই উদাহরণ ।


ধন্যবাদ তবে আমি যেখানে এই অ্যাপটি তৈরি করতে পারি সেখানে আমরা ফেসবুক বিকাশকারী অঞ্চলে ফেসবুকের জন্য অ্যাপ তৈরি করতে পারি।
usama

এই কোডটি একটি ত্রুটি দেয় - "অ্যাপ্লিকেশনটিতে এই এপিআই কল করার ক্ষমতা নেই?" এই প্রযুক্তিবিদদের কাছ থেকে এটি সম্পূর্ণ বুদ্ধিমান sense তারা কীভাবে কিছু পছন্দসই অংশীদারদের মাধ্যমে আসতে এবং আমাদের নিজস্ব অ্যাপ তৈরি না করার জন্য জিজ্ঞাসা করতে পারে।
অমিত খারে

8

আমি আইএফটিটিটি এবং অন্যান্য অনেক পরিষেবা ব্যবহার করার চেষ্টা করেছি তবে সবাই কাজ করছে বা ইনস্টাগ্রাম থেকে ইনস্টাগ্রামে নয় অন্য প্ল্যাটফর্মে পোস্ট করছি। আমি আরও জানতে পেরেছি যে ইনস্টাগ্রাম এখন পর্যন্ত কোনও এপিআই সরবরাহ করে না।

নীল স্ট্যাক ব্যবহার করে আবার ভারী ইনস্টলেশন জড়িত হয় এবং কেবল ম্যানুয়ালি জিনিসগুলি করা হয়।

যাইহোক, আপনি ইনস্টাগ্রামে একটি পোস্ট করতে ডেস্কটপ সংস্করণে আপনার গুগল ক্রোম ব্যবহার করতে পারেন। এটি একটি সামান্য ত্বক প্রয়োজন।

  1. আপনার ক্রোমটি খুলুন এবং ইনস্টাগ্রাম.কম ব্রাউজ করুন
  2. ক্রোমে ডান ক্লিক করে উপাদানটি পরিদর্শন করতে যান।
  3. বিকাশকারী সরঞ্জামগুলিতে উপরের ডান দিকের মেনু ড্রপ ডাউন থেকে আরও সরঞ্জাম নির্বাচন করুন।
  4. আরও নেটওয়ার্ক শর্ত নির্বাচন করুন।
  5. নেটওয়ার্ক নির্বাচন বিভাগে, ব্যবহারকারী এজেন্টের নামের দ্বিতীয় বিভাগটি দেখুন।
  6. স্বয়ংক্রিয়ভাবে নির্বাচন করে আনচেক করুন এবং প্রদত্ত ব্যবহারকারী এজেন্টের তালিকা থেকে অ্যান্ড্রয়েডের জন্য ক্রোম নির্বাচন করুন ।
  7. আপনার ইনস্টাগ্রাম.কমের পৃষ্ঠাটি রিফ্রেশ করুন।

আপনি UI এর পরিবর্তন এবং ইনস্টাগ্রামে একটি পোস্ট করার বিকল্প লক্ষ্য করবেন। আপনার জীবন এখন সহজ। আপনি যদি কোনও সন্ধান করতে পারেন তবে আমাকে একটি সহজ উপায় জানান।

এখানে চিত্র বর্ণনা লিখুন

আমি এটি সম্পর্কে https://www.inteligentcomp.com/2018/11/how-to-upload-to-instagram-from-pc-mac.html এ লিখেছি ।

ওয়ার্কিং স্ক্রিনশট

এখানে চিত্র বর্ণনা লিখুন


তবে আপনি কিছু পোস্ট করতে পারবেন না।
আরভি

1
আমি সবেমাত্র একই পদ্ধতি ব্যবহার করে পোস্ট করেছি। এটি পুরোপুরি ঠিক আছে। আপডেটে স্ক্রিনশট দেখুন।
ধীররাজ থেদিজে

5

এই প্রশ্নটি খুঁজে পাওয়া ব্যবহারকারীদের জন্য, আপনি আইফোন হুক ব্যবহার করে আইফোনটিতে ইনস্টাগ্রাম ভাগ করে নেওয়ার প্রবাহে (আপনার অ্যাপ্লিকেশন থেকে ফিল্টার স্ক্রিনে) ফটোগুলি দিতে পারেন: http://help.instagram.com/355896521173347 এর বাইরে, বর্তমানে নেই এপিআই এর সংস্করণ 1 এ উপায়।


1
@ রিতু আকর্ষণীয় এটি তখন অবশ্যই সম্ভব হবে, তবে এটি API এর মঞ্জুরি দেয় বলে মনে হয় না। ভাগ করে নেওয়ার জন্য ধন্যবাদ, আমি এটি সন্ধান করতে চাই।
আমরু ই।

1
তারা কীভাবে এটি করছে তা আমি ভাবছিলাম, আপনি যদি কোনও প্রাসঙ্গিক কিছু পান তবে দয়া করে ভাগ করুন।
রিতু

2
দেখে মনে হচ্ছে বেশিরভাগ অননুমোদিত ক্লায়েন্টরা অ্যাপ্লিকেশন থেকে সার্ভারে এসএসএল ট্র্যাফিকটি ডিক্রিপ্ট করে এবং পর্যবেক্ষণ করে এপিআই বিপরীত করছে। স্নাপচ্যাটের ক্ষেত্রে এটিই অন্তত। এখানে একই হতে পারে।
আমরু ই

ম্যাকের জন্য ফ্লুম অ্যাপটি আপনার ফিডে পোস্ট করে
জোশুয়া - পেন্ডো

0

এপিআই ব্যবহার করে ইনস্টাগ্রামে ফটো পোস্ট করার জন্য কোনও এপিআই নেই, তবে একটি সহজ উপায় হ'ল গুগল এক্সটেনশানটি ইনস্টল করুন "ব্যবহারকারী এজেন্ট" এটি আপনার ব্রাউজারটিকে অ্যান্ড্রয়েড মোবাইল ক্রোম সংস্করণে রূপান্তরিত করবে। এখানে এক্সটেনশন লিঙ্কটি https://chrome.google.com/webstore/detail/user-agent-switcher/clddifkhlkcojbojppdojfeeikdkgiae?utm_source=chrome-ntp-icon

কেবল এক্সটেনশন আইকনে ক্লিক করুন এবং অ্যান্ড্রয়েডের জন্য ক্রোম চয়ন করুন এবং ইনস্টাগ্রাম ডটকম খুলুন


0

যদি এটির ইউআই থাকে তবে এটির একটি "এপিআই" রয়েছে। আসুন নীচের উদাহরণটি ব্যবহার করুন: আমি তৈরি যে কোনও নতুন ব্লগ পোস্টে আমি যে পিকটি ব্যবহার করি তা প্রকাশ করতে চাই। ধরা যাক ওয়ার্ডপ্রেস।

  1. আরএসএসের মাধ্যমে আপনার ব্লগকে নিয়মিত পর্যবেক্ষণ করে এমন একটি পরিষেবা তৈরি করুন।
  2. কোনও নতুন ব্লগ পোস্ট পোস্ট করা হলে ছবিটি ডাউনলোড করুন।
  3. (Ptionচ্ছিক) কিছু ওভারলে প্রয়োগ করার জন্য এবং আপনার ছবিতে কী নয় তৃতীয় পক্ষের API ব্যবহার করুন।
  4. ফটোটি আপনার পিসি বা সার্ভারে একটি সুপরিচিত স্থানে রাখুন।
  5. ক্রোমটি কনফিগার করুন (উপরে পড়ুন) যাতে আপনি ব্রাউজারটিকে মোবাইল হিসাবে ব্যবহার করতে পারেন।
  6. সেলেনিয়াম (বা এই লাইব্রেরির অন্য কোনও) ব্যবহার করে, ইনস্টাগ্রামে পোস্ট করার সম্পূর্ণ প্রক্রিয়াটি অনুকরণ করুন।
  7. সম্পন্ন. তোমার এটা থাকা উচিত

0

যে কেউ এডাব্লুএস ল্যাম্বদা এবং পুতুল ( ক্রোম-আউজ-ল্যাম্বদা ) ব্যবহার করে ইনস্টাগ্রামে পোস্ট করার বিষয়ে সমাধান অনুসন্ধান করছে For উল্লেখ্য যে এই সমাধানটি আপনাকে কেবলমাত্র প্রতিটি পোস্টের জন্য 1 টি ফটো পোস্ট করার অনুমতি দেয় । আপনি যদি ল্যাম্বদা ব্যবহার না করে থাকেন তবে কেবল এটির chrome-aws-lambdaসাথে প্রতিস্থাপন করুনpuppeteer

লাম্বদা প্রথম প্রবর্তনের জন্য, এটি স্বাভাবিক না যে কাজ করবে না কারণ ইনস্টাগ্রাম "সন্দেহজনক লগইন প্রচেষ্টা" সনাক্ত করে । আপনার পিসি ব্যবহার করে ইনস্টাগ্রাম পৃষ্ঠাটি সন্ধান করুন এবং এটি অনুমোদিত করুন , সবকিছু ঠিকঠাক হওয়া উচিত।

এখানে আমার কোড, এটি অনুকূলিত করতে নির্দ্বিধায়:

// instagram.js
const chromium = require('chrome-aws-lambda');

const username = process.env.IG_USERNAME;
const password = process.env.IG_PASSWORD;

module.exports.post = async function(fileToUpload, caption){
    const browser = await chromium.puppeteer.launch({
        args: [...chromium.args, '--window-size=520,700'],
        defaultViewport: chromium.defaultViewport,
        executablePath: await chromium.executablePath,
        headless: false,
        ignoreHTTPSErrors: true,
    });
    const page = await browser.newPage();
    await page.setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) FxiOS/7.5b3349 Mobile/14F89 Safari/603.2.4');
    await page.goto('https://www.instagram.com/', {waitUntil: 'networkidle2'});
    
    const [buttonLogIn] = await page.$x("//button[contains(., 'Log In')]");
    if (buttonLogIn) {
        await buttonLogIn.click();
    }

    await page.waitFor('input[name="username"]');
    await page.type('input[name="username"]', username)
    await page.type('input[name="password"]', password)
    await page.click('form button[type="submit"]');

    await page.waitFor(3000);
    const [buttonSaveInfo] = await page.$x("//button[contains(., 'Not Now')]");
    if (buttonSaveInfo) {
        await buttonSaveInfo.click();
    }

    await page.waitFor(3000);
    const [buttonNotificationNotNow] = await page.$x("//button[contains(., 'Not Now')]");
    const [buttonNotificationCancel] = await page.$x("//button[contains(., 'Cancel')]");
    if (buttonNotificationNotNow) {
        await buttonNotificationNotNow.click();
    } else if (buttonNotificationCancel) {
        await buttonNotificationCancel.click(); 
    }

    await page.waitFor('form[enctype="multipart/form-data"]');
    const inputUploadHandle = await page.$('form[enctype="multipart/form-data"] input[type=file]');

    await page.waitFor(5000);
    const [buttonPopUpNotNow] = await page.$x("//button[contains(., 'Not Now')]");
    const [buttonPopUpCancel] = await page.$x("//button[contains(., 'Cancel')]");
    if (buttonPopUpNotNow) {
        await buttonPopUpNotNow.click();
    } else if (buttonPopUpCancel) {
        await buttonPopUpCancel.click(); 
    }

    await page.click('[data-testid="new-post-button"]')
    await inputUploadHandle.uploadFile(fileToUpload);

    await page.waitFor(3000);
    const [buttonNext] = await page.$x("//button[contains(., 'Next')]");
    await buttonNext.click();

    await page.waitFor(3000);
    await page.type('textarea', caption);

    const [buttonShare] = await page.$x("//button[contains(., 'Share')]");
    await buttonShare.click();
    await page.waitFor(3000);

    return true;
};
// handler.js

await instagram.post('/tmp/image.png', '#text');

এটি অবশ্যই স্থানীয় ফাইলের পথ হতে হবে, যদি এটি url হয় তবে প্রথমে এটি / টিএমপি ফোল্ডারে ডাউনলোড করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.