如何在App中實現朋友圈功能之五點贊、評論屬性詳細解析——箭扣科技Arrownock

來源:互聯網
上載者:User

標籤:object   朋友   開發人員   使用者   如何   

如何在App中實現朋友圈功能之五點贊、評論屬性詳細解析

 

快速查看評論和點贊數量:

當我們建立一個牆貼後,這個牆貼會自動帶有評論數量commentCount、贊數量likeCount、討厭數量dislikeCount三個屬性。

當有使用者對這個牆貼進行了評論,該牆貼的commentCount屬性會自動成長,無需開發人員來手動操作實現。

如果使用者建立的Like中like=true,那麼likeCount會自動成長,反之,dislikeCount會自動成長。

如果使用者把評論刪除了,或者是把點贊撤銷了,那麼相應的commentCount、likeCount、dislikeCount也會自動減少。

擁有這些屬性的對象共有7個,它們分別是:Comment、Event、 File、Location、Photo、Post、Wall。

 

快速尋找所有樓主的回複:

當使用者A對某個牆貼,建立一個評論時,如果這條牆貼是由使用者B建立的,那麼在A建立評論後,這條評論會自動擁有target_user_id的屬性,這個屬性的意思是目標Object的user_id值,在這個情境下,target_user_id的值是使用者B的id。

這個屬性給開發人員提供了很大一個便利,對於尋找樓主所有的回複這樣類似的功能的繁瑣尋找操作不用再擔心啦。不止Comment, Like也有這個屬性哦。

 

設定評論許可權:

朋友圈的評論是可以評論給所有人,也可以回複某人的評論。

對於第二種情況,只需要在建立Comment時,傳入reply_user_id參數,那麼在查詢出該條Comment時,這個參數會自動轉變為該user的資訊對象。

如建立一條評論時,傳入reply_user_id表示對某人進行的回複,傳入user_id表示建立這條評論的使用者,那麼在查詢時會得到一個這樣的結果:


{  "meta": {    "code": 200,    "status": "ok",    "methodName": "createComment"  },    "response": {    "comment": {      "id": "556acccfba82c60000000008",      "parentId": "556accafba82c60000000007",      "parentType": "Post",      "content": "good job2",      "commentCount": 0,      "commentRate": 0,      "likeCount": 0,      "dislikeCount": 0,      "created_at": "2015-05-31T08:56:47.059Z",      "updated_at": "2015-05-31T08:56:47.066Z",      "user":{        "id": "556acc01ba82c60000000005",        "username": "user1",        "created_at": "2015-05-31T08:53:21.585Z",        "updated_at": "2015-05-31T08:53:21.586Z"      },      "targetUser": {        "id": "556acc01ba82c60000000005",        "username": "user1",        "created_at": "2015-05-31T08:53:21.585Z",        "updated_at": "2015-05-31T08:53:21.586Z"      },      "replyUser": {        "id": "556acc0cba82c60000000006",        "username": "user2",        "created_at": "2015-05-31T08:53:32.444Z",        "updated_at": "2015-05-31T08:53:32.445Z"      }    }  }}



實現過程:

評論功能(以Android代碼為例):


    //發送評論    Map<String, Object> params = new HashMap<String, Object>();    params.put("object_type", "Post"); //類型為Post    params.put("object_id", postId);//對象id為postId    params.put("user_id", userId);//發送評論的userId    params.put("content", content);//評論內容    try {        anSocial.sendRequest("comments/create.json", AnSocialMethod.POST, params,                                                             new IAnSocialCallback() {            @Override            public void onSuccess(JSONObject response) {            //資料存入本機資料庫,重新整理介面,發送通知給post的擁有者            //handleSuccess();            }            @Override            publicvoid onFailure(JSONObject response) {            }        });    } catch (ArrownockException e) {    }



點贊功能:

如果是點贊,則只需要將content參數改為like為true的參數,並且將comments/create.json改為likes/create.json即可。

 

檢查是否被點贊:

1、先建立三個Post,分別叫做testPost1,testPost2,testPost3。

2、然後對testPost1增添like為true,對testPost2增添like為false。c.查詢Post,結果如下:

{  "meta": {    "code": 200,    "status": "ok",    "methodName":"queryPosts",    "page_size": 10,    "page": 1,    "total": 3  },  "response": {    "posts": [    {      "id":"55607838dddfa58b21000008",      "title":"testPost1",      "imageIds": [],      "commentCount": 0,      "commentRate": 0,      "likeCount": 1,      "dislikeCount": 0,      "created_at":"2015-05-23T12:53:12.863Z",      "updated_at":"2015-05-23T12:53:12.863Z",      "like": {        "id":"55607865dddfa58b2100000b",        "positive": true,        "created_at":"2015-05-23T12:53:57.947Z",        "updated_at":"2015-05-23T12:53:57.949Z"        }    },    {      "id":"55607840dddfa58b21000009",      "title":"testPost2",      "imageIds": [],      "commentCount": 0,      "commentRate": 0,      "likeCount": 0,      "dislikeCount": 1,      "created_at":"2015-05-23T12:53:20.635Z",      "updated_at":"2015-05-23T12:53:20.635Z",      "like": {        "id":"55607872dddfa58b2100000c",        "positive": false,        "created_at":"2015-05-23T12:54:10.665Z",        "updated_at":"2015-05-23T12:54:10.666Z"      }    },    {      "id":"55607847dddfa58b2100000a",      "title":"testPost3",      "imageIds": [],      "commentCount": 0,      "commentRate": 0,      "likeCount": 0,      "dislikeCount": 0,      "created_at":"2015-05-23T12:53:27.923Z",      "updated_at":"2015-05-23T12:53:27.924Z"    }]  }}


大家可以看到testPost1和testPost2返回了like屬性,它們的like分別為true和false,這是由於建立like,傳入的like分別為true和false而產生的結果,而testPost3則沒有like屬性。( PS:不光Post有這樣的功能,Comment,Event, File, Location, Photo也有哦。)

 

邀請某人參與投票:

社交功能裡常常可以看到投票這麼一個功能,在anSocial中建立投票Vote時有這麼兩個參數分別是invite_user_ids和invite_circle_ids,如果要在App中提供好友間才能與的投票或是某些圈子內才能參與的投票即可用到這兩個參數。

使用方式很簡單,invite_user_ids即使用者的id,多個id可以用”,”分割,invite_circle_ids即圈子id,同使用者一樣,當傳入invite_circle_ids時,anSocial會自動尋找圈子內的使用者,讓開發提升了很多效率。

 

小提示:

以上是關於發送評論和點贊的通常情況的做法,那麼對於有一種情況,回複評論裡的某人,我們需要傳入reply_user_id參數 params.put("reply_user_id", replyUserId); 

在這種情境裡我們在發送成功的回呼函數中,除了要發送通知給Post的擁有者外,還需要發送通知給我們評論的使用者。另外,在comment和like中,我們還提供了target_user_id的查詢,即可以通過目標對象的建立者id,來直接尋找與之相關的評論和點贊,而不用再通過使用者id先找到Post,再通過Post來找到Comment和Like了。target_user_id是支援傳入多個user_id的,用”,”分割即可。

 


如何在App中實現朋友圈功能系列文章:

之一朋友圈實現原理淺析

之二快速實現使用者資訊的自訂

之三快速實現雙向好友功能

之四在朋友圈中添加發送圖片功能

之五點贊、評論屬性詳細解析

之六快速實現下拉載入朋友圈功能

之七快速實現上拉載入朋友圈功能

之八頁面載入功能的邏輯與實現

 


本文出自 “箭扣科技Arrownock” 部落格,轉載請與作者聯絡!

如何在App中實現朋友圈功能之五點贊、評論屬性詳細解析——箭扣科技Arrownock

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.