Foros del Web » Programando para Internet » PHP »

microsofttraslate error

Estas en el tema de microsofttraslate error en el foro de PHP en Foros del Web. hola wenas estoy tratando de implantar un traductor en tiempo real en un chat que hice en php quiero usar la api de microsoft traslator ...
  #1 (permalink)  
Antiguo 15/06/2013, 09:07
 
Fecha de Ingreso: abril-2008
Mensajes: 72
Antigüedad: 16 años
Puntos: 0
microsofttraslate error

hola wenas
estoy tratando de implantar un traductor en tiempo real en un chat que hice en php
quiero usar la api de microsoft traslator

me registre y regristre la aplicacion asi que tengo el clientID y clientSecret

luego baje un codigo de ejemplo de la aplicacion
pues este codigo me da el siguiente error

Exception-ACS50012: Authentication failed. Trace ID: ab39219b-6a5e-4773-bb19-ff6663f7f418 Correlation ID: e1260f57-2fc8-4250-9cfd-241066ecf604 Timestamp: 2013-06-15 15:04:28Z


el codigo de ejemplo es este

tambien probe otros codigos similares con el mismo error.

alguien tubo este problema? llevo desde ayer con el asunto buscando informacion y no lo encuentro en ningun sitio

gracias




Código PHP:
class AccessTokenAuthentication {
    
/*
     * Get the access token.
     *
     * @param string $grantType    Grant type.
     * @param string $scopeUrl     Application Scope URL.
     * @param string $clientID     Application client ID.
     * @param string $clientSecret Application client ID.
     * @param string $authUrl      Oauth Url.
     *
     * @return string.
     */
    
function getTokens($grantType$scopeUrl$clientID$clientSecret$authUrl){
        try {
            
//Initialize the Curl Session.
            
$ch curl_init();
            
//Create the request Array.
            
$paramArr = array (
                 
'grant_type'    => $grantType,
                 
'scope'         => $scopeUrl,
                 
'client_id'     => $clientID,
                 
'client_secret' => $clientSecret
            
);
            
//Create an Http Query.//
            
$paramArr http_build_query($paramArr);
            
//Set the Curl URL.
            
curl_setopt($chCURLOPT_URL$authUrl);
            
//Set HTTP POST Request.
            
curl_setopt($chCURLOPT_POSTTRUE);
            
//Set data to POST in HTTP "POST" Operation.
            
curl_setopt($chCURLOPT_POSTFIELDS$paramArr);
            
//CURLOPT_RETURNTRANSFER- TRUE to return the transfer as a string of the return value of curl_exec().
            
curl_setopt ($chCURLOPT_RETURNTRANSFERTRUE);
            
//CURLOPT_SSL_VERIFYPEER- Set FALSE to stop cURL from verifying the peer's certificate.
            
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
            
//Execute the  cURL session.
            
$strResponse curl_exec($ch);
            
//Get the Error Code returned by Curl.
            
$curlErrno curl_errno($ch);
            if(
$curlErrno){
                
$curlError curl_error($ch);
                throw new 
Exception($curlError);
            }
            
//Close the Curl Session.
            
curl_close($ch);
            
//Decode the returned JSON string.
            
$objResponse json_decode($strResponse);
            if (
$objResponse->error){
                throw new 
Exception($objResponse->error_description);
            }
            return 
$objResponse->access_token;
        } catch (
Exception $e) {
            echo 
"Exception-".$e->getMessage();
        }
    }
}

/*
 * Class:HTTPTranslator
 *
 * Processing the translator request.
 */
Class HTTPTranslator {
    
/*
     * Create and execute the HTTP CURL request.
     *
     * @param string $url        HTTP Url.
     * @param string $authHeader Authorization Header string.
     * @param string $postData   Data to post.
     *
     * @return string.
     *
     */
    
function curlRequest($url$authHeader) {
        
//Initialize the Curl Session.
        
$ch curl_init();
        
//Set the Curl url.
        
curl_setopt ($chCURLOPT_URL$url);
        
//Set the HTTP HEADER Fields.
        
curl_setopt ($chCURLOPT_HTTPHEADER, array($authHeader,"Content-Type: text/xml"));
        
//CURLOPT_RETURNTRANSFER- TRUE to return the transfer as a string of the return value of curl_exec().
        
curl_setopt ($chCURLOPT_RETURNTRANSFERTRUE);
        
//CURLOPT_SSL_VERIFYPEER- Set FALSE to stop cURL from verifying the peer's certificate.
        
curl_setopt ($chCURLOPT_SSL_VERIFYPEERFalse);
        
//Execute the  cURL session.
        
$curlResponse curl_exec($ch);
        
//Get the Error Code returned by Curl.
        
$curlErrno curl_errno($ch);
        if (
$curlErrno) {
            
$curlError curl_error($ch);
            throw new 
Exception($curlError);
        }
        
//Close a cURL session.
        
curl_close($ch);
        return 
$curlResponse;
    }
}

try {
    
//Client ID of the application.
    
$clientID       "mi_clientID";
    
//Client Secret key of the application.
    
$clientSecret "mi_clientSecre";
    
//OAuth Url.
    
$authUrl      "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13/";
    
//Application Scope Url
    
$scopeUrl     "http://api.microsofttranslator.com";
    
//Application grant type
    
$grantType    "client_credentials";

    
//Create the AccessTokenAuthentication object.
    
$authObj      = new AccessTokenAuthentication();
    
//Get the Access token.
    
$accessToken  $authObj->getTokens($grantType$scopeUrl$clientID$clientSecret$authUrl);
    
//Create the authorization Header string.
    
$authHeader "Authorization: Bearer "$accessToken;

    
//Set the params.//
    
$fromLanguage "en";
    
$toLanguage   "es";
    
$inputStr     "the best machine translation technology cannot always provide translations tailored to a site or users like a human";
    
$contentType  'text/plain';
    
$category     'general';
    
    
$params "text=".urlencode($inputStr)."&to=".$toLanguage."&from=".$fromLanguage;
    
$translateUrl "http://api.microsofttranslator.com/v2/Http.svc/Translate?$params";
    
    
//Create the Translator Object.
    
$translatorObj = new HTTPTranslator();
    
    
//Get the curlResponse.
    
$curlResponse $translatorObj->curlRequest($translateUrl$authHeader);
    
    
//Interprets a string of XML into an object.
    
$xmlObj simplexml_load_string($curlResponse);
    foreach((array)
$xmlObj[0] as $val){
        
$translatedStr $val;
    }
    echo 
"<table border=2px>";
    echo 
"<tr>";
    echo 
"<td><b>From $fromLanguage</b></td><td><b>To $toLanguage</b></td>";
    echo 
"</tr>";
    echo 
"<tr><td>".$inputStr."</td><td>".$translatedStr."</td></tr>";
    echo 
"</table>";
} catch (
Exception $e) {
    echo 
"Exception: " $e->getMessage() . PHP_EOL;
}


/*
 * Create and execute the HTTP CURL request.
 * 
 * @param string $url        HTTP Url.
 * @param string $authHeader Authorization Header string.
 * @param string $postData   Data to post.
 *
 * @return string.
 *
 */
function curlRequest($url$authHeader$postData=''){
    
//Initialize the Curl Session.
    
$ch curl_init();
    
//Set the Curl url.
    
curl_setopt ($chCURLOPT_URL$url);
    
//Set the HTTP HEADER Fields.
    
curl_setopt ($chCURLOPT_HTTPHEADER, array($authHeader,"Content-Type: text/xml"));
    
//CURLOPT_RETURNTRANSFER- TRUE to return the transfer as a string of the return value of curl_exec().
    
curl_setopt ($chCURLOPT_RETURNTRANSFERTRUE);
    
//CURLOPT_SSL_VERIFYPEER- Set FALSE to stop cURL from verifying the peer's certificate.
    
curl_setopt ($chCURLOPT_SSL_VERIFYPEERFalse);
    if(
$postData) {
        
//Set HTTP POST Request.
        
curl_setopt($chCURLOPT_POSTTRUE);
        
//Set data to POST in HTTP "POST" Operation.
        
curl_setopt($chCURLOPT_POSTFIELDS$postData);
    }
    
//Execute the  cURL session. 
    
$curlResponse curl_exec($ch);
    
//Get the Error Code returned by Curl.
    
$curlErrno curl_errno($ch);
    if (
$curlErrno) {
        
$curlError curl_error($ch);
        throw new 
Exception($curlError);
    }
    
//Close a cURL session.
    
curl_close($ch);
    return 
$curlResponse;

  #2 (permalink)  
Antiguo 16/06/2013, 03:51
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: microsofttraslate error

https://www.google.de/search?q=micro...w=1600&bih=762
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 16/06/2013, 23:52
 
Fecha de Ingreso: abril-2008
Mensajes: 72
Antigüedad: 16 años
Puntos: 0
Respuesta: microsofttraslate error

ya prove de buscar el error en google, pero no encuentro la solucion o simplemente no la veo

gracias de todas maneras

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:20.