Почему только некоторые каналы восстанавливаются из Google Reader? - PullRequest
1 голос
/ 26 ноября 2009

Я хочу проанализировать результаты моего общедоступного канала чтения Google. Я пишу приложение в gwt, и до этого момента я следовал примеру со строкой:

String gdata = 
    "http://www.google.com/base/feeds/snippets?alt=json-in-script&callback=";

Канал получен,

public void handle(JavaScriptObject jso) {
    JSONObject json = new JSONObject(jso);
    JSONArray ary = json.get("feed").isObject().get("entry").isArray();
    Window.alert(json.toString());
}

и данные отображаются на панели + я вижу это в окне предупреждения. Однако, когда я изменяю URL, чтобы я мог использовать свой фид, а не пример, ничего не получается.

Вот некоторые способы, которыми я пытался отформатировать свой URL:

http://www.google.com/reader/public/javascript/feed/http://www.google.com/reader/public/atom/user%2F17524205173321155204%2Flabel%2Fpub?alt=json-in-script&callback=
http://www.google.com/reader/public/javascript/feed/http://www.google.com/reader/public/atom/user%2F11035509885961399965%2Fstate%2Fcom.google%2Fbroadcast?callback=?
http://www.google.com/reader/public/javascript/feed/http://www.google.com/reader/public/atom/user%2F11035509885961399965%2Fstate%2Fcom.google%2Fbroadcast?callback=?

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

Я хочу запускать регулярные выражения для данных, которые я получаю из канала. Есть лучший способ сделать это?

Большое спасибо!

1 Ответ

0 голосов
/ 27 ноября 2009

Образец является URL-адресом для продукта Google Base http://www.google.com/base/api/demo/html/demo.html, в то время как вы пытаетесь сделать это для продукта Google Reader, который использует другой формат возврата данных. Я не знаком с обоими форматами, но из того, что я вижу, вы, вероятно, должны забыть о базовом формате и посмотреть, как форматируются данные считывателя.

Кроме того. Кажется, что базовый API (используемый вами пример) автоматически вставляет имя метода обратного вызова (я заключаю из вашего примера), поэтому может потребоваться изменить URL-адрес и добавить: callback=gdata.io.handleScriptLoaded, чтобы он работал в первую очередь.

...