рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ Microsoft рдмрд┐рдВрдЧ рдЕрдиреБрд╡рд╛рджрдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рд╢реБрдн рджреЛрдкрд╣рд░

рдХрднреА-рдХрднреА рд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ (рдмрд╣реБрднрд╛рд╖реА рд╕рд╛рдордЧреНрд░реА, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рд╕реАрдПрдирд╕реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЪреВрдВрдХрд┐ Google Translate API рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдкреИрд╕реЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Bing Translator API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Microsoft рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ ( http://msdn.microsoft.com/en-us/library/dd576287.aspx , http://www.microsoft.com/web/post/use-the-free-bing -translation-apis ), рд▓реЗрдХрд┐рди, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╡реЗ рдХрд╛рдлреА рднреНрд░рдорд┐рдд рдФрд░ рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╣реИрдВ, рдореИрдВ рд╕реЗрд╡рд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

Microsoft рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ Windows Live Id рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкрд╣рд▓реЗ, рдмрд┐рдВрдЧ рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ https://ssl.bing.com/webmaster/developers/appids.aspx рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдХреЗ рдЖрд╡реЗрджрди рдХреА рдмрд┐рдВрдЧ рдРрдк рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред рдЕрдм рдпрд╣ рддрдВрддреНрд░ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ ред

рдлрд┐рд▓рд╣рд╛рд▓, рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЕрдиреБрд╡рд╛рджрдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░реЗрдВ

1. рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ( https://accountservices.passport.net/reg.srf рдкрд░ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдХреЗ)

2. datamarket.azure.com рдкрд░ рд▓рд╛рдЗрд╡ рдЖрдИрдбреА рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдФрд░ рд╡рд╣рд╛рдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░реЗрдВ, рдлрд┐рд░ рдбреЗрдЯрд╛ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ Microsoft рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рджрд╛рдИрдВ рдУрд░ рдЯреИрд░рд┐рдл рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрдЧреА, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдХрдо-рдореБрдлреНрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдЗрд╕рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВ (рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ)ред

3. "рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ, рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред рд╣рдо рдЧреНрд░рд╛рд╣рдХ рдЖрдИрдбреА рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рднрд░рддреЗ рд╣реИрдВ, рдЧреНрд░рд╛рд╣рдХ рд░рд╣рд╕реНрдп рдкрд╣рд▓реЗ рд╣реА рдЙрддреНрдкрдиреНрди рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдЕрдиреБрдкреНрд░реЗрд╖рд┐рдд рдпреВрдЖрд░рдЖрдИ рдХреЛрдИ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

4. рдЕрдм рдЖрдк рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ, Microsoft OAuth рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, POST рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЕрдкрдиреЗ client_id рдФрд░ client_secret рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХ json-serialized рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ access_token рдлрд╝реАрд▓реНрдб рд╣реИред рдЯреЛрдХрди 10 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд╡реИрдз рд╣реИ, рдлрд┐рд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
Access_token рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдХреЗ рдЕрдиреБрд╡рд╛рджрдХ рдХреЛ GET рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ itIt рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд░ рджреЗ appId = Bearer TOKEN_VALUE (рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде)ред рдЙрд╕реА рдЕрдиреБрд░реЛрдз рдореЗрдВ, рдЬрд┐рд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╕рдлрд▓, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред

рдореИрдВ рдПрдХ php рд╡рд░реНрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдЬреЛ рдкрд╛рда рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИред

<? php
рд╡рд░реНрдЧ рдЕрдиреБрд╡рд╛рдж {

рд╕рдВрд░рдХреНрд╖рд┐рдд $ msData , $ accessToken ;

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __construct ( $ msData ) { // client_id рдФрд░ client_secret mskata рд╕рд░рдгреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
$ рдпрд╣ -> msData = $ msData ;
$ рдпрд╣ -> initAccessToken ( ) ;
}

рд╕рдВрд░рдХреНрд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди initAccessToken ( ) { // accessToken рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
$ рдХрд░реНрд▓ = рдХрд░реНрд▓_рдЗрдирд┐рдЯ ( " datamarket.accesscontrol.windows.net/v2/OAuth2-13/" ) ;
curl_setopt_array ( $ рдХрд░реНрд▓ , рд╕рд░рдгреА ()
CURLOPT_POST => true , // рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП POST рдЕрдиреБрд░реЛрдз рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ
CURLOPT_POSTFIELDS => http_build_query ( рд╕рд░рдгреА )
'client_id' => $ рдпрд╣ -> msData [ 'clientid' ] ,
'client_secret' => рдЗрд╕ $ -> msData [ ' clientecret ' ]]
'рдЧреБрдВрдЬрд╛рдЗрд╢' => 'http://api.microsofttranslator.com' , // рдпрд╣ рдорд╛рди рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ
'allow_type' => "client_credentials" // рдпрд╣ рдорд╛рди рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ
) ) ,
CURLOPT_SSL_VERIFYPEER => рдЧрд▓рдд ,
CURLOPT_RETURNTRANSFER => рд╕рддреНрдп ,
) ) ;
$ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ = curl_exec ( $ рдХрд░реНрд▓ ) ;
$ рдЧрд▓рдд = curl_errno ( $ рдХрд░реНрд▓ ) ;
рдЕрдЧрд░ ( $ рдкреАрдЫреЗ )
рдирдпрд╛ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХреЗрдВ ( " $ рдЧрд▓рдд рддрдХ рдХрд░реНрд▓ рдХрд░реЗрдВ" ) ;
$ r_obj = json_decode ( $ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ ) ;
рдЕрдЧрд░ ( isset ( $ r_obj ) )
рдирдпрд╛ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХреЗрдВ ( "рдЕрд╡реИрдз рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: $ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ " ) ;
$ рдпрд╣ -> accessToken = $ r_obj -> access_token ;
}

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ рдЕрдиреБрд╡рд╛рдж ( $ рдкрд╛рда , $ lang_to , $ lang_from ) {
$ query_arr = рд╕рд░рдгреА (
'appId' => 'рдмрд┐рдпрд░рд░' ред $ рдпрд╣ -> accessToken ,
'рдкрд╛рда' => $ рдкрд╛рда ,
'рд╕реЗ' => $ lang_from ,
'рд╕реЗ' => $ lang_to ,
'рд╕рд╛рдордЧреНрд░реА рдЯрд╛рдЗрдк' => 'рдкрд╛рда / рд╕рд╛рджрд╛'
) ;
$ рдХреНрд╡реЗрд░реА = http_build_query ( $ query_arr ) ;
$ url = 'http://api.microsofttranslator.com/V2/Http.svc/Translate?' ред $ рдХреНрд╡реЗрд░реА ;
$ рдХрд░реНрд▓ = рдХрд░реНрд▓_рдЗрдирд┐рдЯ ( $ url ) ;
curl_setopt ( $ рдХрд░реНрд▓ , CURLOPT_RETURNTRANSFER , 1 ) ;
$ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ = curl_exec ( $ рдХрд░реНрд▓ ) ;
$ рдЧрд▓рдд = curl_errno ( $ рдХрд░реНрд▓ ) ;
рдЕрдЧрд░ ( $ рдкреАрдЫреЗ )
рдирдпрд╛ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХреЗрдВ ( " $ рдЧрд▓рдд рддрдХ рдХрд░реНрд▓ рдХрд░реЗрдВ" ) ;
$ xml = new SimpleXMLElement ( $ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ ) ; // xml рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЕрдиреБрд╡рд╛рдж рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╡рд╛рдкрд╕реА ( рд╕реНрдЯреНрд░рд┐рдВрдЧ ) $ xml ;
}
}


рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдЬреЛ рдПрдХ рдСрдирд▓рд╛рдЗрди рдЕрдиреБрд╡рд╛рджрдХ рдХреЛ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In143323/


All Articles