我在Facebook上创建了一个帖子,并收到帖子ID。现在我想创建一个带有URL的like button,所以当点击Like时,用户会喜欢他的帖子。Facebook喜欢帖子使用帖子ID
可能吗?我如何使用JavaScript或使用Android-Facebook sdk3?
我在Facebook上创建了一个帖子,并收到帖子ID。现在我想创建一个带有URL的like button,所以当点击Like时,用户会喜欢他的帖子。Facebook喜欢帖子使用帖子ID
可能吗?我如何使用JavaScript或使用Android-Facebook sdk3?
假设您拥有publish_stream
权限,您可以通过发出HTTP
POST
请求到POST_ID/likes
连接来发帖。
与javascript sdk
,你可以这样做
FB.api("/POST_ID/likes", 'post',function(response) {
if (!response || response.error) {
alert('Error occured');
} else {
alert('successfully, liked the post!');
}
});
不同的网页,你可以不喜欢按钮添加一个Facebook 一个Android应用程序。我不确定这是否可以在WebView
中完成。但是,您可以通过使用“POST”或“DELETE”查询来Facebook帖子中添加该函数:
这是一个正在运行的例子切换类似帖子的状态在我的应用程序中:
注意:此代码适用于较旧的v2.x SDK。所以,你需要适应一些东西,特定于最新的3.x版SDK
在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
),我要么删除Like或我发布Like。
尽管它是一个较老的SDK,但代码仍然有效,只需稍作修改(如有必要)就可以正常工作。