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 ですが、コードはまだ有効であり、(必要に応じて) いくつかの変更を加えれば問題なく動作します。