2016-01-05 18 views
5

Próbuję wysłać mojego pierwszego e-maila z Sendgrid:Sendgrid API - błąd login/hasło Bad

$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"); 

Oto błąd biegnę do:

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


Zamiast "username" i "xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx" Oczywiście używam prawdziwych informacji o kluczu API z ustawień Sendgrid: enter image description here

Użyłem długiego klucza napisanego po utworzeniu klucza API. Ale nadal wydaje się, że coś jest nie tak z tą linią: $ sendgrid = new SendGrid ("nazwa użytkownika", "xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx");

Gdzie należy uzyskać informacje o autoryzacji, aby nie uzyskać błędnej nazwy użytkownika/hasła?

Odpowiedz

8

Inną możliwą odpowiedzią jest przekazanie tylko klucza API do konstruktora 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

Jeśli to również działa i rozwiązuje problem, zdecydowanie zalecałbym korzystanie z tego konstruktora, ponieważ a) Twoja pełna nazwa użytkownika i hasło dostępu nie będą w kodzie lub potencjalnie wyciekły; b) za pomocą klucza API można odwołać wyciek klucza i również ustawić dużo drobniejsze uprawnienia. –

+2

To jest poprawna odpowiedź, osoba pytająca powinna przekazać tylko klucz API SendGrid. Przekazując dwa ciągi, biblioteka SendGrid myśli, że decydują się na używanie nazwy użytkownika i hasła zamiast klucza API. –

3

Zamiast używać "nazwa użytkownika", która jest nazwą klucza API, spróbuj użyć swojej nazwy użytkownika SendGrid (nazwy użytkownika, której używasz do logowania do panelu itp.).

EDYCJA: aby to działało, użyj również hasła Sendgrid zamiast klucza API. To działało dla mnie.

EDYCJA 2: podczas rozwiązywania tego problemu należy użyć tylko klawisza APi, jak wspomniano w zaznaczonej odpowiedzi.

+0

Dziękuję Justin! – Sergey

+0

Dodałem też inną możliwą odpowiedź/rozwiązanie. –

+0

Proszę użyć innej odpowiedzi/rozwiązania, które podałem. Dzięki. –