0

Facebookに投稿を作成し、投稿IDを受け取りました。次に、自分の投稿へのURLを使用して「いいね」ボタンを作成したいので、「いいね」をクリックすると、ユーザーは自分の投稿を高く評価します。

出来ますか?また、JavaScriptを使用したり、Android-Facebook sdk3を使用したりするにはどうすればよいですか?

4

2 に答える 2

1

あなたが許可を持っていると仮定して接続にHTTP POSTリクエストを発行することにより、投稿を高く評価することができます。POST_ID/likespublish_stream

javascript sdk、あなたは次のようなことをすることができます

FB.api("/POST_ID/likes", 'post',function(response) {
    if (!response || response.error) {
    alert('Error occured');
  } else {
    alert('successfully, liked the post!');
  }
});
于 2013-02-17T19:18:21.247 に答える
0

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

于 2013-02-17T19:24:00.677 に答える