2016-01-05 16 views
5

मैं Sendgrid के साथ मेरी पहली ईमेल भेजने के लिए कोशिश कर रहा हूँ: इसके बजायSendgrid एपीआई - गलत उपयोगकर्ता नाम/पासवर्ड त्रुटि

PHP Fatal error: Uncaught exception 'SendGrid\Exception' with message '{"errors":["Bad username/password"],"message":"error"}'


:

$sendgrid = new SendGrid('username', 'xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx'); 
$email = new SendGrid\Email(); 

$email->addTo("[email protected]") 
     ->setFrom("[email protected]") 
     ->setSubject("Sending with SendGrid is Fun") 
     ->setHtml("and easy to do anywhere, even with PHP"); 

यहाँ त्रुटि मैं में चलाने है 'username' और 'xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx' का मैं निश्चित रूप से Sendgrid सेटिंग्स से वास्तविक API कुंजी जानकारी का उपयोग करता हूं: enter image description here

मैंने एपीआई कुंजी बनाने के बाद प्रदान की गई लंबी स्ट्रिंग कुंजी का उपयोग किया। लेकिन अभी भी इस पंक्ति के साथ कुछ गलत लगता है: $ sendgrid = new SendGrid ('username', 'xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx');

मुझे प्राधिकरण के लिए जानकारी कहां मिलनी चाहिए ताकि मुझे खराब उपयोगकर्ता नाम/पासवर्ड त्रुटि न हो?

उत्तर

8

एक और संभावित उत्तर केवल SendGrid() कन्स्ट्रक्टर को एपीआई कुंजी पास करना है;

$sendgrid = new SendGrid('xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx'); 
$email = new SendGrid\Email(); 

$email->addTo("[email protected]") 
     ->setFrom("[email protected]") 
     ->setSubject("Sending with SendGrid is Fun") 
     ->setHtml("and easy to do anywhere, even with PHP"); 
+1

यदि यह समस्या को हल करता है और हल करता है तो मैं इस कन्स्ट्रक्टर का उपयोग करने की अत्यधिक अनुशंसा करता हूं क्योंकि ए) एपीआई कुंजी का उपयोग करके आपका पूरा एक्सेस उपयोगकर्ता नाम और पासवर्ड आपके कोड या संभवतः लीक नहीं होगा और बी) आप लीक की गई कुंजी को रद्द कर सकते हैं और बहुत अधिक दागदार अनुमतियों को भी सेट करें। –

+2

यह सही उत्तर है, पूछने वाले को केवल अपनी SendGrid API कुंजी को पास करना चाहिए। दो तारों को पार करके, SendGrid लाइब्रेरी सोचती है कि वे एपीआई कुंजी के बजाय उपयोगकर्ता नाम और पासवर्ड का उपयोग करना चुन रहे हैं। –

3

'उपयोगकर्ता नाम' का उपयोग करने के बजाय जो एपीआई कुंजी का नाम है, अपने SendGrid उपयोगकर्ता नाम (उपयोगकर्ता नाम जिसे आप डैशबोर्ड आदि में लॉग इन करने के लिए उपयोग करते हैं) का उपयोग करने का प्रयास करें।

संपादित करें: इसे काम करने के लिए, एपीआई कुंजी के बजाय सेंड्रिड पासवर्ड का भी उपयोग करें। यह मेरे लिए काम किया।

संपादित करें 2: इस मुद्दे को हल करते समय, किसी को चयनित उत्तर में उल्लिखित एपीआई कुंजी का उपयोग करना चाहिए।

+0

धन्यवाद जस्टिन! – Sergey

+0

मैंने एक और संभावित उत्तर/समाधान भी जोड़ा। –

+0

कृपया प्रदान किए गए दूसरे उत्तर/समाधान का उपयोग करें। धन्यवाद। –

संबंधित मुद्दे