использовать facebook как кнопка

Я создал приложение для Android, чтобы показывать комментарии определенного сообщения от facebook . что я хочу сделать, это реализовать кнопку like . У меня есть все необходимые данные (токен facebook, идентификатор пользователя, идентификатор приложения и т. Д.) И разрешение, которое мне нужно от пользователя.

circle number 1 is the content of the comment
circle number 2 is the name if the user
circle number 3 is the like button that i want to implement
circle number 4 is the time that the comment sent

enter image description here

I use this link to get the comments: https://graph.facebook.com/568609876496765/comments

он возвращает объект JSON , который я фразу, и получаю данные и показываю их в виде List View .

Заранее спасибо.

0

1 ответы

В отличие от веб-страниц, вы не можете добавить кнопку Facebook Like в приложение для Android. Однако вы можете добавить функцию Like to post (комментарий в вашем случае) с помощью запроса «POST» или «DELETE» в API Facebook:

Вот полный пример того, что я делаю с Toggle как статус комментария в моем приложении:

ПРИМЕЧАНИЕ. Этот код предназначен для более старого v2.x SDK. Поэтому вам нужно будет адаптировать несколько вещей, которые относятся к последнему v3.x SDK

В onClickListener вы будете использовать, чтобы отправлять/удалять Like, запускать этот фрагмент кода:

try {
    String query = "SELECT user_likes FROM comment WHERE post_id= \'"
            + THE_COMMENT_ID + "\'";
    Bundle params = new Bundle();
    params.putString("method", "fql.query");
    params.putString("query", query);
    String fqlResponse = Utility.mFacebook.request(params);

    JSONArray JALikes = new JSONArray(fqlResponse);

    for (int j = 0; j < JALikes.length(); j++) {
        JSONObject JOTemp = JALikes.getJSONObject(j);

        if (JOTemp.has("user_likes"))   {
            String userLikeStatus = JOTemp.getString("user_likes");
            if (userLikeStatus.equals("true"))  {

                try {
                    Bundle parameters = new Bundle();
                    Utility.mFacebook.request(arrayComments.get(position).getCommentID() + "/likes", parameters, "DELETE");

                   //CHANGE THE TEXT OF THE WIDGET TO SHOW THE TOGGLED STATE
                }
                catch(Exception e)  {
                    e.printStackTrace();
                }
            } else if (userLikeStatus.equals("false")) {
                try {
                    Bundle parameters = new Bundle();
                    Utility.mFacebook.request(arrayComments.get(position).getCommentID() + "/likes", parameters, "POST");

                   //CHANGE THE TEXT OF THE WIDGET TO SHOW THE TOGGLED STATE
                }
                catch(Exception e)  {
                    e.printStackTrace();
                }

            }
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}

В первой части кода ( перед циклом для цикла ) я проверяю текущий статус, если пользователю входа в систему нравится комментарий. Исходя из результата ( в цикле для цикла ), я либо удаляю Like или I post Like.

Хотя это старый SDK, код по-прежнему действителен, и с некоторыми изменениями (при необходимости) будет работать нормально.

1
добавлено
@ShalomMelamed: вы можете поместить этот код в AsyncTask , если это то, что вы имеете в виду. И если вы получаете пустые данные, вы должны проверить запрос в разделе «Графический проводник» (раздел «Запрос FQL»). Он работает отлично. Вы также можете попробовать удалить escape slash
добавлено автор Siddharth Lele, источник
@ShalomMelamed: Идентификатор комментария является строкой и требует escape-кода или «окружающего». Попробуйте выполнить запрос сначала в проводнике графики, чтобы убедиться.
добавлено автор Siddharth Lele, источник
спасибо за ваш ответ, но есть две проблемы. во-первых, вызов mFacebook.request (params); должен быть в другом потоке. во-вторых, строка new JSONArray (fqlResponse); вернуть пустые данные (возвращает «[]»). вы знаете, как я могу это исправить?
добавлено автор Shalom Melamed, источник
Я использую facebook Graph Explorer, и я переместил код в asyncTask, оставив ответ fql, когда я удаляю escape-слэш: {"error_code": 601, "error_msg": "Ошибка анализатора: неожиданно" _1982451 'в позиции 60 . "," request_args ": [{" key ":" query "," value ":" SELECT user_likes FROM comment WHERE post_id = 568609876496765_1982451 "}, {" key ":" method "," value ":" f & zwnj; ql.query "}, {" ключ ":" F & ZWNJ; Ormat " "значение":" & ZWNJ JSON; «}]}
добавлено автор Shalom Melamed, источник
Я сначала просматриваю запрос в графическом проводнике, но теперь вижу, что он возвращает пустые данные, как раньше (возвращает «[]»), спасибо за ваше терпение.
добавлено автор Shalom Melamed, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Android Rus
Android Rus
68 участник(ов)