0

からの特定の投稿のコメントを表示する Android アプリを作成しましたfacebook。私がやりたいのは、likeボタンを実装することです。必要なすべてのデータ (Facebook トークン、ユーザー ID、アプリ ID など) と、ユーザーから必要な許可を取得しています。

サークル番号1はコメントの内容
サークル番号2はユーザーの場合の名前
サークル番号3は実装したいいいねボタン
サークル番号4はコメントが送信された時間

ここに画像の説明を入力

このリンクを使用してコメントを取得します: https://graph.facebook.com/568609876496765/comments

それはJSON私がフレーズを付けてデータを取得し、それをList View.

前もって感謝します。

4

1 に答える 1

1

Web ページとは異なり、Facebook のようなボタンを Android アプリに追加することはできません。ただし、Facebook API への「POST」または「DELETE」クエリを使用して、投稿 (この場合はコメント) にいいね! を付ける関数を追加できます。

これは、アプリケーションでコメントの Like ステータスを切り替えるために行うことの完全な機能例です。

注: このコードは古い v2.x SDK 用です。そのため、最新の v3.x SDK に固有のいくつかのことを調整する必要があります。

Like の投稿/削除に使用する onClickListener で、次のコードを実行します。

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();
}

コードの最初の部分 ( のfor loop) で、ログインしているユーザーがコメントを気に入ったかどうか、現在のステータスを確認します。結果 (内for loop)に基づいて、いいねを削除するか、いいねを投稿します。

これは古い SDK ですが、コードはまだ有効であり、(必要に応じて) いくつかの変更を加えれば問題なく動作します。

于 2013-02-07T11:23:02.350 に答える