Как я могу получить поток Facebook и профиль пользователя на Android?

1

В моем приложении для Android я хочу получать поток и пользователей одновременно. Как и в некоторых других приложениях, я хочу показать ленту новостей с пользователем pic и именем. Но когда я использовал график api, было сложно получить изображение профиля.

Я переключился на FQL, и, используя 2 запроса, я мог получать потоки и изображение пользователя. Проблема в том, что, если страница что-то печатает, я могу прочитать эту страницу, но не смог получить профиль страницы одновременно, поэтому она не будет работать.

Итак, мой вопрос в том, есть ли какое-либо решение одновременно показывать поток и изображение профиля пользователя? Не имеет значения, нужно ли мне использовать график api или fql, что угодно.

Это запрос, который я могу получить для всего потока.

 requestPost("SELECT source_id, target_id, message FROM stream WHERE filter_key in "
                + "(SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0 limit 20");


public String requestPost(String fql) throws MalformedURLException,
IOException, JSONException, FacebookError {

    Bundle parameters = new Bundle();
    parameters.putString("format", "json");
    parameters.putString("query", fql);
    parameters.putString("method", "fql.query");

    if (mFacebook.isSessionValid()) {
        parameters.putString("access_token", mFacebook.getAccessToken());
    }
    String url = (fql != null) ? "https://api.facebook.com/method/fql.query?query=QUERY"
            : "https://api.facebook.com/restserver.php";
    String response = mFacebook.request(parameters);
    response = "{\"data\":" + response + "}";

    JSONObject json = Util.parseJson(response);
    JSONArray data = json.getJSONArray("data");
    // ///////////////fql/////////////////////////////////

    posts.removeAll(posts);
    for (int i = 0; i < data.length(); i++) {
        JSONObject jpost = data.getJSONObject(i);
        Post po = new Post();
        po.po_fromid = jpost.getString("source_id");
        po.po_message = jpost.getString("message");
        requestUser("SELECT name, pic_square FROM user WHERE uid ="
                + po.po_fromid);

        posts.add(po);

    }
    Message msg = new Message();
    msg.what = 0;

    mHandler.sendMessage(msg);

    return Util.openUrl(url, "GET", parameters);

}

public String requestUser(String fql) throws FileNotFoundException,
        MalformedURLException, IOException, JSONException, FacebookError {

    // ///////////////fql/////////////////////////////////
    Bundle parameters = new Bundle();
    parameters.putString("format", "json");
    parameters.putString("query", fql);
    parameters.putString("method", "fql.query");

    if (mFacebook.isSessionValid()) {
        parameters.putString("access_token", mFacebook.getAccessToken());
    }
    String url = (fql != null) ? "https://api.facebook.com/method/fql.query?query=QUERY"
            : "https://api.facebook.com/restserver.php";
    String response = mFacebook.request(parameters);
    response = "{\"data\":" + response + "}";

    JSONObject json = Util.parseJson(response);
    JSONArray data = json.getJSONArray("data");
    // ///////////////fql/////////////////////////////////
    friends.removeAll(friends);
    for (int i = 0; i < data.length(); i++) {
        JSONObject me = data.getJSONObject(i);
        Friend fr = new Friend();
        fr.frname = me.getString("name");
        fr.pic = me.getString("pic_square");
        friends.add(fr);
    }
    return Util.openUrl(url, "GET", parameters);

}
Теги:
facebook
stream
facebook-fql

1 ответ

1

Вам не нужно отдельно запрашивать изображение, просто поток. Результаты потока будут иметь идентификатор пользователя, и вы можете использовать идентификатор пользователя для автоматического создания URL-адреса изображения. Формат URL:

https://graph.facebook.com/######/picture?type=??????

Где ##### - их идентификатор пользователя, и? это тип изображения (квадратный, малый, нормальный, большой).

  • 0
    Спасибо, что ответили. но я хочу картинку и имя тоже. но поток fql возвращает только идентификатор, а не имя. это была проблема. :(

Ещё вопросы

Сообщество Overcoder
Наверх
Меню