Facebookに投稿を作成し、投稿IDを受け取りました。次に、自分の投稿へのURLを使用して「いいね」ボタンを作成したいので、「いいね」をクリックすると、ユーザーは自分の投稿を高く評価します。
出来ますか?また、JavaScriptを使用したり、Android-Facebook sdk3を使用したりするにはどうすればよいですか?
Facebookに投稿を作成し、投稿IDを受け取りました。次に、自分の投稿へのURLを使用して「いいね」ボタンを作成したいので、「いいね」をクリックすると、ユーザーは自分の投稿を高く評価します。
出来ますか?また、JavaScriptを使用したり、Android-Facebook sdk3を使用したりするにはどうすればよいですか?
あなたが許可を持っていると仮定して接続にHTTP
POST
リクエストを発行することにより、投稿を高く評価することができます。POST_ID/likes
publish_stream
でjavascript sdk
、あなたは次のようなことをすることができます
FB.api("/POST_ID/likes", 'post',function(response) {
if (!response || response.error) {
alert('Error occured');
} else {
alert('successfully, liked the post!');
}
});
Web ページとは異なり、Facebook のようなボタンを Android アプリに追加することはできません。これが で実行できるかどうかはわかりませんWebView
。ただし、「POST」または「DELETE」クエリを Facebook API に使用することで、投稿にいいね! を付ける関数を追加できます。
これは、アプリケーションで投稿のいいねステータスを切り替えるために私が行うことの機能例です。
注: このコードは古い v2.x SDK 用です。そのため、最新の v3.x SDK に固有のいくつかのことを調整する必要があります。
Like の投稿/削除に使用する onClickListener で、次のコードを実行します。
try {
String query = "SELECT user_likes FROM stream WHERE post_id= \'"
+ THE_POST_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("POST_ID/likes", parameters, "DELETE");
// SHOW THE "LIKE" IS REMOVED
}
catch(Exception e) {
e.printStackTrace();
}
} else if (userLikeStatus.equals("false")) {
try {
Bundle parameters = new Bundle();
Utility.mFacebook.request("POST_ID/likes", parameters, "POST");
// SHOW THAT THE POST IS NOW "LIKED"
}
catch(Exception e) {
e.printStackTrace();
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
コードの最初の部分 ( の前for loop
) で、ログインしているユーザーが投稿を気に入ったかどうか、現在のステータスを確認します。結果 (内for loop
)に基づいて、いいねを削除するか、いいねを投稿します。
これは古い SDK ですが、コードはまだ有効であり、(必要に応じて) いくつかの変更を加えれば問題なく動作します。