コード例 #1
0
 /**
  * Sends a message to the specified addresses. 
  *
  * @param array       $addresses strings that holds the addresses to which 
  *                               the specified messages will be sent. 
  * @param string|null $text      text body of message or null if none
  * @param string|null $subject   subject of message or null if none
  * @param array|null  $fnames    file names of attachments or null if none 
  * @param bool|null   $isGroup   whether to send as broadcast or null to
  *                               use default
  *
  * @return string message id 
  * @throws ServiceException if API request was not successful
  */
 public function sendMessage($addresses, $text, $subject, $fnames = null, $isGroup = null)
 {
     $endpoint = $this->getFqdn() . '/myMessages/v2/messages';
     $req = new RESTFulRequest($endpoint);
     $req->setHeader('Accept', 'application/json')->setHeader('Content-Type', 'application/json')->setAuthorizationHeader($this->getToken());
     $vals = array('addresses' => $addresses);
     $vals['isGroup'] = $isGroup ? 'true' : 'false';
     if ($text !== null) {
         $vals['text'] = $text;
     }
     if ($subject !== null) {
         $vals['subject'] = $subject;
     }
     $messageRequest = array('messageRequest' => $vals);
     $jvals = json_encode($messageRequest);
     $result = null;
     if ($fnames == null) {
         // no attachments; send basic POST
         $req->setHeader('Content-Type', 'application/json');
         $httpPost = new HttpPost();
         $httpPost->setBody($jvals);
         $result = $req->sendHttpPost($httpPost);
     } else {
         // attachments; send as multipart
         $mpart = new HttpMultipart();
         $mpart->addJSONPart($jvals);
         foreach ($fnames as $fname) {
             $mpart->addFilePart($fname);
         }
         $result = $req->sendHttpMultipart($mpart);
     }
     $responseArr = Service::parseJson($result);
     return $responseArr['id'];
 }
コード例 #2
0
 /**
  * Sends a custom API request for converting speech to text.
  *
  * @param string $cntxt  speech context.
  * @param string $fname  path to file that contains speech to convert.
  * @param string $gfname path to file that contains grammar.
  * @param string $dfname path to file that contains dictionary.
  * @param string $xArg   optional arguments.
  * @param string $lang   language used to set the Content-Language header.
  *
  * @return array API response as an array of key-value pairs.
  * @throws ServiceException if API request was not successful.
  */
 public function speechToTextCustom($cntxt, $fname, $gfname = null, $dfname = null, $xArg = null, $lang = 'en-US')
 {
     $endpoint = $this->getFqdn() . '/speech/v3/speechToTextCustom';
     $mpart = new SpeechMultipartBody();
     $req = new RESTFulRequest($endpoint);
     $req->setHeader('X-SpeechContext', $cntxt)->setHeader('Accept', 'application/json')->setHeader('Content-Language', $lang)->setAuthorizationHeader($this->getToken());
     if ($xArg != null) {
         $req->setHeader('X-Arg', $xArg);
     }
     if ($dfname != null) {
         $mpart->addXDictionaryPart($dfname);
     }
     if ($gfname != null) {
         $mpart->addXGrammarPart($gfname);
     }
     $mpart->addFilePart($fname);
     $result = $req->sendHttpMultipart($mpart);
     return Service::parseJson($result);
 }