2012-08-26 22 views
6

में वे 2 एसएमएस के माध्यम से भेजकर स्वचालित एसएमएस भेजना मैं पर्ल एलडब्लूपी का उपयोग करके वे 2 एसएमएस के माध्यम से एसएमएस भेजने की कोशिश कर रहा हूं। लॉगिन हिस्सा सफल रहा है, जिसके बाद मैं कुकीज़ को स्थानीय फ़ाइल में सहेजता हूं। लॉग इन होने के बाद स्वागत पृष्ठ एसएमएस लिंक भेजें, जिस पर किसी अन्य पृष्ठ पर रीडायरेक्ट किया गया है, उस पर क्लिक करके मोबाइल नंबर और एसएमएस टेक्स्ट के लिए दो इनपुट और एसएमएस सबमिट करने और भेजने के लिए एक बटन। फायरबग आकृति में दिखाए गए पृष्ठ संरचना का खुलासा करता है। इफ्रेम यूआरएल और फॉर्म की action विशेषता से, मैंने फॉर्म एक्शन का पूर्ण यूआरएल बनाया और फ़ाइल में संग्रहीत कुकी के साथ फॉर्म को तदनुसार सबमिट किया। हालांकि, एसएमएस नहीं भेजा जाता है। मैं यहाँ क्या गलत कर रहा हूँ? कोड निम्नानुसार है। (दो पाठ इनपुट के लिए name गुण सही,, Firebug में स्रोत कोड को देख कर लिया जाता है, हालांकि उस छवि में शामिल नहीं है)पर्ल

use LWP::UserAgent; 
open f, "> way2sms.txt"; 
use HTTP::Cookies; 
my $cookie_jar = HTTP::Cookies->new(
file => "cookies.txt", 
autosave => 1, 
); 

my $ua = LWP::UserAgent->new(
    agent => 
     'Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1', 
    cookie_jar => $cookie_jar, 
); 
my $response = $ua->post(
    'http://site2.way2sms.com/contentt/bar/Login1.action', 
    { 
     username => $user, 
     password => $pass, 
    } 
); 

if ($response->is_redirect) { 
    $response = $ua->get($response->header('Location')); 
    print 5 if $response->decoded_content =~ /Kaustav Mukherjee/i; #prints it, showing that the login is successful 
} 
my $smsresp = $ua->post("http://site5.way2sms.com/jsp/quicksms.action",[MobNo=>$mob,textArea=>'Hello World']); 

enter image description here

+1

एक त्वरित Google खोज ने कम से कम दो स्क्रिप्ट्स (रूबी में से एक, पायथन में एक) का खुलासा किया जो कमांड लाइन से वे 2 एसएमएस का उपयोग करता है। क्या आप वाकई उन्हें फिर से आविष्कार करना चाहते हैं? –

+0

मुझे उन लिपियों को पता है जिन्हें आपने संदर्भित किया था। पायथन लिपि काम नहीं करता है। सीपीएएन में भी एक समान पर्ल स्क्रिप्ट है, लेकिन इसे मेकफ़ाइल में एक त्रुटि मिली है, इसलिए यह ठीक से इंस्टॉल नहीं होता है। मुझे रूबी नहीं पता, यही कारण है कि मैं इसे खुद करना चाहता हूं। – SexyBeast

+0

way2sms के माध्यम से प्रति दिन 100 एसएमएस की सीमा है। तो, अगर आप सोच रहे थे कि यह असीमित था, तो आप गलत थे। – Prasanth

उत्तर

1

काम स्क्रिप्ट:

use LWP::UserAgent; 
    use HTTP::Cookies; 

    my $ua = LWP::UserAgent->new(agent=>"Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1"); 

    $ua->cookie_jar({ file => "/absolute/path/to/cookies.txt", autosave => 1 }); 
    # if windows, use \ instead of/

    # $ua->proxy(['http', 'ftp'], 'http://localhost:9666/'); 

    # below line seems to have done the trick 
    push @{ $ua->requests_redirectable }, 'POST'; 

    my $response = $ua->post(
      'http://site5.way2sms.com/Login1.action',{ 
      "username" => "1234567890", # set your username 
      "password" => "passwd0123", # set your password 
      "userLogin" => "yes", 
      "message" => "", 
      "mobileNo" => "", 
      } 
    ); 

    if($response->is_success && $response->decoded_content =~ /Logout/i){ # you can have your name too in place of Logout 
      print "Logged in!\r\n"; 
    } 

    my $mob = "1234567890"; # mobile to send message to 
    my $mes = "Hello! 123."; # message 

    my $smsresp = $ua->post(
      "http://site5.way2sms.com/quicksms.action", 
      { 
        'Action' => 'dsf45asvd5', 
        'HiddenAction' => 'instantsms', 
        'catnamedis' => 'Birthday', 
        'chkall' => 'on', 
        'MobNo' => $mob, 
        'textArea' => $mes, 
      }); 

    if ($smsresp->is_success && $smsresp->decoded_content =~ /Submitted/i) { 
     print "Sent!\r\n"; 
    } 

पी.एस.: (30 पर 6/सितम्बर/2012 3:00 PM GMT + 5 परीक्षण किया गया) मैं मुझे लगता है कि समय सीमा समाप्त हो इनाम O_o :)

+0

कठिन भाग्य, मैंने बिल्कुल वही काम करने की कोशिश की, काम नहीं कर रहा। शायद मैं कुछ कर्ल कॉन्फ़िगरेशन की उपेक्षा कर रहा हूं। – SexyBeast

+0

क्या आप रेफरर सेट कर सकते हैं? आपको इसे 'http: // site5.way2sms.com/jsp/InstantSMS.jsp' – Prasanth

+0

@Cupidvogel संपादित किया जाना चाहिए मेरी पोस्ट देखें। आप '/ jsp/quicksms.action' पर अनुरोध कर रहे थे, यह केवल'/quicksms.action' होना चाहिए कृपया अभी आज़माएं। – Prasanth

3

मैं अपनी प्रवेश जानकारी तो नहीं है कि मैं आपके लिए इसका परीक्षण नहीं कर सकता।

लेकिन आप कुछ फ़ायरफ़ॉक्स एडन जैसे टैम्परडाटा या एचटीपीफ़ॉक्स का उपयोग कर सकते हैं ताकि यूआरएल पोस्ट किया जा सके और कौन से पैरा भेजे जाते हैं।

ब्राउज़र के समान अनुरोध करने के लिए पर्ल का उपयोग करें और यह अच्छा होगा।

बीटीडब्ल्यू, आप दो अनुरोध भेजने के लिए एक $ ua का उपयोग कर सकते हैं, कोई अन्य LWP :: UserAgent उदाहरण बनाने की आवश्यकता नहीं है।

धन्यवाद

+0

लेकिन दूसरे अनुरोध के लिए, मुझे पहले अनुरोध से फ़ाइल में पहले से संग्रहीत कुकीज़ भेजने की आवश्यकता है, इसलिए क्या मुझे एक नया '$ ua' उपयोग नहीं करना चाहिए? – SexyBeast

+1

कुकी पहले अनुरोध से उस $ ua के साथ रहेगी। तो यह ठीक है। –

+0

लेकिन अभी भी एसएमएस नहीं भेजा जा रहा है। कृपया सहायता कीजिए! – SexyBeast

3

आप एक नया उपयोगकर्ता एजेंट स्थापित करने के लिए है क्योंकि आप बस पिछले एक पुन: उपयोग कर सकते हैं नहीं है। AFAIK, कुकीज़ पहले से ही उस उपयोगकर्ता एजेंट में होगी।

कृपया ध्यान दें: निम्नलिखित थोड़ा ओटी है।

मैं https://metacpan.org/pod/Net::SMS::WAY2SMS

पर एक नज़र यह मेरा पीसी पर पंख स्थापित किया था। शायद आप इसे फिर से कोशिश करना चाहते हैं? अपनी ठोस समस्या के साथ यहां एक नया प्रश्न खोलें। कृपया मुझे सूचित करने के लिए स्वतंत्र महसूस करें, इसलिए हम इसे देख सकते हैं।

+0

यही वह है जिसे मैंने इंस्टॉल करने का प्रयास किया, फिर भी यह असफल रहा। मैं दुबारा कोशिश करूँगा। इस बीच में मैं देखूंगा कि एक ही उपयोगकर्ता-एजेंट का उपयोग करना है या नहीं। – SexyBeast

+0

मैंने कोड अपडेट किया। फिर भी यह एसएमएस नहीं भेज रहा है। मैंने आपके द्वारा उल्लिखित मॉड्यूल के स्रोत कोड का अध्ययन किया। इसे बहुत समझ में नहीं आया, साथ ही वह मैकेनाइजेशन का उपयोग कर रहा है। मुझे लगता है कि यदि आप एक अलग दृष्टिकोण की कोशिश कर रहे हैं तो पहिया को फिर से शुरू करना स्वीकार्य है! – SexyBeast

+0

बेशक, TIMTOWTDI :) मुझे व्यवस्थापक होना है, कि बिना किसी प्रमाण-पत्र के समस्या का विश्लेषण करना मुश्किल है। क्या आप पहले अनुरोध के बाद एचटीएमएल कोड प्राप्त कर सकते हैं? – capfan

3

क्या आपने way2sms.com के माध्यम से संदेश भेजने के लिए पर्ल मॉड्यूल नेट :: एसएमएस :: WAY2SMS का उपयोग करने का प्रयास किया है? यह मेरे लिए बहुत अच्छा काम करता है।

कोशिश स्थापित करने के लिए:

C:\> perl -MCPAN -e "install Net::SMS::WAY2SMS" 

यहाँ एसएमएस भेजने के लिए एक कोड नमूना है:

use strict; 
use warnings; 
use Net::SMS::WAY2SMS; 

my $sms = Net::SMS::WAY2SMS->new(
    'user' => 'user_name' , 
    'password' => 'secret_password', 
    'mob' => ['1234567890', '0987654321'] 
); 

# multi line sms 
$sms->send(q[testing 
sending 
sms]); 
+0

हाँ मुझे पता है (ऊपर दिए गए उत्तर के लिए टिप्पणियां पढ़ें)। मैं इसे 'एलडब्लूपी' के माध्यम से करने की कोशिश कर रहा हूं, यह 'मैकेनाइज' के माध्यम से करता है। – SexyBeast

+0

अब काम नहीं कर रहा है सी: \ उपयोगकर्ता \ manish \ डेस्कटॉप> perl test.pl त्रुटि प्राप्त करना http://wwwl.way2sms.com/jsp/InstantSMS.jsp?val=0: lib/ नेट/एसएमएस/WAY2SMS.pm (lib/auto/net/SMS/wAY2SMS/send.al में स्वत: विभाजन) लाइन 113. – pkm

3

वास्तव में देखना नहीं कर सकता क्या गलत है, लेकिन यहाँ बातें मैं कम से तलाश शुरू होता है:

  • ब्राउज़र से अपना वास्तविक पोस्ट अनुरोध देखें। सुनिश्चित करें कि जावास्क्रिप्ट या कुछ और एक चर नहीं जोड़ रहा है जो HTML में दिखाई नहीं दे रहा है।
  • ट्रिपल जांच करें कि MobNo और textArea वास्तव में केवल आवश्यक पैरामीटर हैं। उदाहरण के लिए सबमिट बटन को चेक किया जाता है, यह देखने के लिए कि क्या कार्रवाई की गई थी।
  • देखें कि आपकी पोस्ट करते समय आपको क्या आउटपुट मिलता है। क्या यह विफलता के बारे में कुछ कहता है?
  • आप

मैं स्क्रैप का एक बहुत किया है http-संदर्भदाता के अभाव पर का पर्दाफाश नहीं कर रहे हैं सुनिश्चित करने के लिए अपना ब्राउज़र से सीधे पोस्ट बनाने की कोशिश करें (उस के लिए एफएफ प्लगइन्स हैं)/एक ब्राउज़र होने का नाटक करते हुए और यह अक्सर बहुत कठिन होता है। लोग "सुरक्षा" चेक जोड़ते हैं। आम तौर पर यह है कि आपको उदाहरण के लिए सत्र चर वापस पोस्ट करने की आवश्यकता होती है।

शुभकामनाएं!

* संपादित करें: साइट के लिए पंजीकरण करने के लिए आपके पास वैध + 9 1 नंबर होना आवश्यक है, इसलिए मैं लॉगिन नहीं कर सकता और खुद के लिए प्रयास नहीं कर सकता। उस पृष्ठ पर विज्ञापनों की मात्रा को ध्यान में रखते हुए मुझे लगता है कि वे कुछ प्रकार के चर जोड़ रहे हैं क्योंकि वे विज्ञापन बंद करते हैं और आप उनसे बचने की कोशिश कर रहे हैं।

1

आप सभी पोस्ट क्षेत्रों सहित नहीं कर रहे हैं की आवश्यकता

MobNo= 
textArea= 
HiddenAction=instantsms 
login= 
pass= 
Action= 

ये सभी शामिल किए जाने की जरूरत है। PHP में this script है जो निश्चित रूप से काम करता है और आप इसका उल्लेख कर सकते हैं।

+0

मुझे कर्ल के बारे में बिल्कुल कोई जानकारी नहीं है। क्या आप कृपया बता सकते हैं कि 113-122 क्या रेखा है? – SexyBeast

+0

यह आपके लॉगिन पेज की प्रतिक्रिया को देखता है, जो आपके पास '$ प्रतिक्रिया-> decoded_content' में है और कार्रवाई स्ट्रिंग के लिए एक मिलान पाता है। –

+0

मैंने किया, कुछ मैचों थे, लेकिन 'आईडी' के संबंध में कोई भी 'एक्शन' का मूल्य नहीं सौंपा गया, वे सभी ने 'एक्शन' नामक कक्षाओं के साथ निपटाया। – SexyBeast

0

खैर

  1. Way2SMS.com है हो सकता है एक बार 'catnamedis' मासिक छिपा पैरामीटर का मान बदलते कामना करते हैं।
  2. Way2SMS.com नई छिपा मापदंडों जोड़ने कम बार, 'टोकन' जो उपयोगकर्ता पर निर्भर करता है कहा जाता है अब वे जोड़ लिया है नया parmeter की तरह साथ 'कार्रवाई' छिपा पैरामीटर एक ही है, और जो उपयोगकर्ता के आधार पर भी भिन्न होता है।

तो एक स्क्रिप्ट किसी के लिए काम करता है, क्योंकि यह बदल मूल्यों की, दूसरे के लिए काम करता है नहीं है, आप करने के लिए है मैन्युअल रूप से एक असली ब्राउज़र में अपने way2sms.com खाते में प्रवेश और तत्व का निरीक्षण किया और टोकन के लिए मान निकालने और आपके खाते के लिए एक्शन पैरामीटर (यह मान प्रत्येक उपयोगकर्ता के लिए भिन्न होता है)।

यहां मेरा Python Script है जिसके माध्यम से मैं इसे प्राप्त करने में सक्षम हूं। आप अपने पर्ल कार्यक्रम के लिए एक संदर्भ के रूप में उपयोग कर सकते हैं

नोट: - मेरी स्क्रिप्ट आज़माने से पहले, कार्रवाई की मूल्य के अनुसार मूल्य लिपि में चर 'अधिनियम' की बदल आपके खाते के लिए पैरामीटर, कि आप निरीक्षण तत्व या फ़ायरबग के साथ पा सकते हैं।