Запрос. Как получить имя пользователя, идентификатор, имя, фамилию и адрес электронной почты из учетной записи Google?

Я использую приведенный ниже код из демонстрационное приложение AQuery, а xml всегда нулевой

Как я могу получить информацию, связанную с учетной записью, которую я выбираю из списка учетных записей Google?

public void auth_specific_account(){


        String url = "https://www.google.com/reader/atom/user/-/state/com.google/reading-list?n=8";

        AjaxCallback<XmlDom> cb = new AjaxCallback<XmlDom>();

        cb.url(url).type(XmlDom.class).weakHandler(this, "readerCb");  
        cb.auth(this, AQuery.AUTH_READER, AQuery.ACTIVE_ACCOUNT);

        aq.progress(R.id.progress).ajax(cb);

    }

public void readerCb(String url, XmlDom xml, AjaxStatus status) {

        if(xml != null){

            List<XmlDom> entries = xml.tags("entry");           
            List<String> titles = new ArrayList<String>();

            for(XmlDom entry: entries){
                titles.add(entry.text("title"));
            }

            showTextResult(titles);         
        }

        AQUtility.debug("status:" + status);

        showResult(xml, status);
    }

person code511788465541441    schedule 10.09.2013    source источник


Ответы (1)


Вы можете использовать другой подход, когда слабый обработчик не нужен, передав в aq.ajax() объект расширенного AjaxCallback, который получает информацию об элементе, для которого следует использовать запрос.

    private class AjaxCallbackAddingMarker extends AjaxCallback<Bitmap> {
        private final Item item;

        AjaxCallbackAddingMarker(Item item) {
            this.item = item;
        }

        @Override
        public synchronized void callback(String url, Bitmap object, AjaxStatus status) {
            // do something with item and downloaded Bitmap
        }
    };

Если вы хотите использовать weakHandler, то это мое решение:

private void loadImage(final ImageView image, String url) {

    Bitmap bmp = aq.getCachedImage(url);

    if (bmp!= null) {
        image.setImageBitmap(bmp);
        return;
    }

    Object handler = new Object() {
        @SuppressWarnings("unused")
        public void callback(String url, Bitmap bmp, AjaxStatus status) {
            if (bmp != null) {
                image.setImageBitmap(bmp);
            }
        }
    };

    AjaxCallback<Bitmap> bmpCallback = new AjaxCallback<Bitmap>();
    bmpCallback.type(Bitmap.class).url(url).header("User-Agent", appPrefs.getUserAgent()).policy(AQuery.CACHE_PERSISTENT)
            .expire(GlobalVars.MARKERS_CACHE_EXPIRE).fileCache(true).weakHandler(handler, "callback");
    aq.ajax(bmpCallback);
}
person Malachiasz    schedule 21.10.2013