Помогите не понять Google Translate API v2 для PHP? - PullRequest
0 голосов
/ 01 апреля 2011

{--------------------- Окончательное обновление -----------------} Мне скоро понадобится API для производства, но сейчас я просто хотел привыкнуть к нему. И я использовал его для разовой сделки, чтобы сэкономить время. (Но я использовал два полных дня ...) В любом случае я нашел gtranslate для этого. Поэтому я буду смотреть на фактический API когда-нибудь в будущем, когда он будет дальше. : D

Да, я нашел работу вокруг.

{-------------------------------- UPDATE ------------- ------------------------------}

Со времени моего первоначального поста мне удалось продвинуться немного дальше с помощью prodigitalson и Дэвида Гиллена, но я все еще в растерянности.

Я получил таинственную ошибку SLL, поэтому немного прочитал в Интернете, и мне сказали сделать сертификат. В любом случае, в результате я провел большую часть утра в аду программирования, пытаясь скомпилировать из исходного кода opensll на окнах, которые просто не работали. И поэтому я отказался от этой идеи и нашел пост, в котором предлагалось использовать curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, 0); линия, и это решило проблему, теперь ошибка, которую я получаю:

Fatal error: Uncaught exception 'apiAuthException' with message
'Couldn't fetch request token, http code: 400, response body: Invalid scope:
https://www.googleapis.com/auth/translate ' in 
C:\xampp\htdocs\translate\google-api-php-client2\src\auth\apiOAuth.php:191 
Stack trace: 
#0 
C:\xampp\htdocs\translate\google-api-php-client2\src\auth\apiOAuth.php(169):
apiOAuth->requestRequestToken('http://localhos...') 
#1 C:\xampp\htdocs\translate\google-api-php-client2\src\auth\apiOAuth.php(87): 
apiOAuth->obtainRequestToken('http://localhos...', '4d9609c2bc4ce') 
#2 C:\xampp\htdocs\translate\google-api-php-client2\src\apiClient.php(131): 
apiOAuth->authenticate(Object(apiFileCache), Object(apiCurlIO), Array) 
#3 C:\xampp\htdocs\translate\lang.php(20): apiClient->authenticate() 
#4 {main} thrown in C:\xampp\htdocs\translate\google-api-php-client2\src\auth\apiOAuth.php on line 191

Я сейчас использую этот код, к которому закомментированные строки не влияют на сообщение об ошибке

<?php
//session_start();
//$_session['auth_token'] = 'AIzaSyAdPfnEsdsQQ6AxSn6K78LznZXHfHZIB3M';

require_once('/google-api-php-client2/src/apiClient.php');
require_once('/google-api-php-client2/src/contrib/apiTranslateService.php');

$apiClient = new apiClient();
$translate = new apiTranslateService($apiClient);

//If a oauth token was stored in the session, use that- and otherwise go through the oauth dance
if (isset($_SESSION['auth_token'])) {
$apiClient->setAccessToken($_SESSION['auth_token']);
}
else {
//In a real application this would be stored in a database, not in the session
$_SESSION['auth_token'] = $apiClient->authenticate();
}

//$translate->listTranslations('Hello to the world of space', 'fr', 'text', 'en');

{---------------------------------- ОРИГИНАЛЬНЫЙ ПОЧТ НИЖЕ --------- -----------------------}

Я впервые пытаюсь использовать API любого рода, и это более неприятно, чем что-либо другое.

Я пытаюсь заставить API Google Translate работать на PHP. К сожалению, документация не является фиктивным доказательством, поэтому я потерян.

Я прочитал этот документ вверх и вниз и из стороны в сторону: http://code.google.com/apis/language/translate/v2/getting_started.html

Я скачал клиент PHP API, показанный здесь http://code.google.com/apis/language/translate/v2/libraries.html

И я пытаюсь использовать этот сценарий, в частности: http://code.google.com/p/google-api-php-client/source/browse/trunk/src/contrib/apiTranslateService.php

Я не очень понимаю, как реализовать ООП *, так что это мой недостаток. В документации говорится, что мне нужно использовать мой ключ API для его использования, но я не нашел, где мне нужно поместить это в клиент php api.

Пока что я пытался это сделать:

<?php
include('../google-api-php-client/src/apiClient.php');
include('../google-api-php-client/src/contrib/apiTranslateService.php');
$a = new apiTranslateService;
$a->listTranslateions('Hello to the world of space', 'fr', 'text', 'en');
?>

И это мой результат

Catchable fatal error: 
Argument 1 passed to apiTranslateService::__construct() 
must be an instance of apiClient, none given, called in     
C:\xampp\htdocs\translate\lang.php on line 7 and defined in 
C:\xampp\htdocs\google-api-php-client\src\contrib\apiTranslateService.php on line 38  

* Если вам известна хорошая ссылка на сайт, чтобы научить меня, не стесняйтесь оставить ее со мной.

Спасибо всем

1 Ответ

1 голос
/ 01 апреля 2011

Сначала необходимо создать экземпляр клиента API (первый файл, который вам требуется) ... например:

$client = new apiClient();
// do your auth with the client here

$translateService = new apiTranslateService($client);

Что касается проверки подлинности: http://code.google.com/p/google-api-php-client/wiki/UsingTheLibrary обратите внимание, что в примере используется служба Buzz, тогда как вы будете использовать службу перевода.

...