2016-11-14 2 views
0

Ich versuche, SMS mit meiner Laravel-Anwendung zu senden. Ich habe infobip Konto Tests und die Verwendung dieser Details zu SMS SMS aber immer diese Fehlermeldung:Infobip einzigen SMS-Dienst mit guzzle in Laravel

ClientException in RequestException.php line 111: 
Client error: `POST https://api.infobip.com/sms/1/text/single` resulted in a  `401 Unauthorized` response: 
{"requestError":{"serviceException": {"messageId":"UNAUTHORIZED","text":"Invalid login details"}}} 

Code:

$data= '{ 
     "from":"InfoSMS", 
     "to":"923227124444", 
     "text":"Test SMS." 
    }'; 
    $userstring = 'myuserame:password'; 
    $id =base64_encode ('myuserame:password'); 
    echo 'Basic '.$id; 
    $client = new \GuzzleHttp\Client(); 
    $request = $client->post('https://api.infobip.com/sms/1/text/single',array(
      'content-type' => 'application/json' 
      ),['auth' => ['myusername', 'password']]); 
    $request->setHeaders(array(
     'accept' => 'application/json', 

     'authorization' => 'Basic '.$id, 
     'content-type' => 'application/json' 
    )); 
    $request->setBody($data); #set body! 
    $response = $request->send(); 
    echo $res->getStatusCode(); // 200 
    echo $res->getBody(); 
    return $response; 

Der Benutzername und das pssword recht, wie ich versuchte, von der direkten Textnachricht senden die Website und ihre Arbeit dort.

Kann mir jemand helfen, was mache ich falsch?

Danke!

Antwort

1

Also habe ich müde das Problem zu lösen mit Curl und ich habe es funktioniert Code für andere platzieren. Code:

$data_json = '{ 
     "from":"Infobip", 
     "to":"9232271274444", 
     "text":"test msg." 
    }'; 
    $authorization = base64_encode('username:password'); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Accept: application/json',"Authorization: Basic $authorization")); 
    //curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
    curl_setopt($ch, CURLOPT_URL, 'https://api.infobip.com/sms/1/text/single'); 

    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $response = curl_exec($ch); 
    //var_dump(curl_getinfo($ch)); 
    var_dump($response); 
    curl_close($ch);*/ 
1

Sie müssen nicht Benutzername/Passwort wie Sie read in the infobip api developer manuals übergeben.

Try this:

$authEncoded = base64_encode('myuserame:password'); 
$data = array(
    "from" => "InfoSMS", 
    "to" => "923227124444", 
    "text" => "Test SMS." 
); 
$request = new Request('POST', 'https://api.infobip.com/sms/1/text/single', 
    array(
     'json' => $data, 
     'headers' => array(
      'Authorization' => 'Basic ' . $authEncoded, 
      'Accept' => 'application/json', 
      'Content-Type' => 'application/json', 
     ) 
    ) 
); 
$client = new \GuzzleHttp\Client(); 
$response = $client->send($request); 
echo $response->getBody(); 

ich es nicht testen kann mich jetzt so halten mich auf dem Laufenden, wenn es funktionierte oder eine Fehlermeldung angezeigt.

+0

Ich bekam Request Fehler in diesem aber ich müde, es mit Locken zu lösen. Code hier platzieren. –