Использование GWT на стороне клиента для получения контактов GData при размещении в AppEngine - PullRequest
2 голосов
/ 04 января 2012

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

Что мне нужно: Я размещаю интернет-приложение на AppEngine, и мне нужно получить фид контактов для пользователя.

Что я пробовал:

  1. gwt-gdata: хорошую библиотеку, которую я пытался использовать, но по какой-то причине мне показалось, что она работает только при локальном тестировании в тестовой среде Eclipse. Как только он был загружен в AppEngine, я получил исключение JavaScript, которое было трудно диагностировать. Видя, как я могу тянуть контакты при локальном тестировании в тестовой среде Eclipse, я предположил, что это связано с ограничением на AppEngine.
  2. gdata-api: я пытался использовать http GET-запросы, чтобы попытаться получить канал, но казалось, что все мои запросы возвращались пустыми (даже не было ошибок). Я предположил, что AppEngine каким-то образом блокирует подобные запросы. Я понятия не имею, если это правильно.
  3. GData на сервере: после отработки OAuth я смог получить все, что работает с этим подходом, но для того, чтобы пользователь загрузил все свои контакты в приложение, он использует сервер в течение полных 6 секунд на запрос, что недопустимо.
  4. Библиотека GData Javascript с GWT JSNI: Я получаю сообщение об ошибке, похожее на то, что я получал, когда пробовал gwt-gdata. На этот раз я был более опытным в диагностике ошибки Javascript, и кажется, что библиотека javascript загружается неправильно. Я попытался загрузить его несколькими способами, но безуспешно.

Текущая ситуация: Так что теперь я возвращаюсь к исходной точке, пытаясь использовать только ресурсы клиентов для получения контактов, будучи размещенным на AppEngine. Есть ли в AppEngine какие-то ограничения, чтобы каким-то образом ограничивать то, что я пытаюсь сделать, или я просто не смог сделать это правильно?

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 12 января 2012

Подход 1 выглядит лучше всего - хотя эта библиотека уже полтора года не работает над ней, что заставляет меня задуматься, не было ли это заброшено Google - кто-нибудь знает что-нибудь лучше?

Поскольку клиентская часть вашего проекта AppEngine реализована в виде чистого javascript и запускается на клиенте, трудно понять, как AppEngine может помешать этому. Что произойдет, если вы удалите какие-либо компоненты на стороне сервера из своего проекта (оставив только бит для получения фида контактов - возможно, вы сможете временно кодировать токен аутентификации?), Скомпилируете проект и развернете его на простом сервере apache?

...