我搜索了很多,我也可以在 StackOverflow 中看到一些与我相同的问题,但没有得到答案。
我需要获取他/她的帐户下发布的任何用户(google+ 和 facebook)消息,并将其作为 xml 响应提供给移动应用程序,该应用程序将用户帖子显示为更好的格式/设计 - 所以在这里我需要获取使用个人资料 ID/用户名来自 google+/facebook 的帖子。
例如:就像从 twitter 我可以看到状态
有没有任何图书馆或任何特定的方式可以让我得到它?
提前致谢。
我搜索了很多,我也可以在 StackOverflow 中看到一些与我相同的问题,但没有得到答案。
我需要获取他/她的帐户下发布的任何用户(google+ 和 facebook)消息,并将其作为 xml 响应提供给移动应用程序,该应用程序将用户帖子显示为更好的格式/设计 - 所以在这里我需要获取使用个人资料 ID/用户名来自 google+/facebook 的帖子。
例如:就像从 twitter 我可以看到状态
有没有任何图书馆或任何特定的方式可以让我得到它?
提前致谢。
我只能与 Facebook 和 Twitter 交谈,因为它们是我使用过的仅有的两个社交媒体 API。
这两个 API 都是 RESTful 服务。对于 Twitter 和 Facebook,您需要在透视平台上创建应用程序,以便为将通过 RESTful 服务获取数据的应用程序 获取OAuth令牌。
对于 FaceBook,您可以利用Graph API Explorer进行开发。这使您无需在 FaceBook 平台上创建应用程序即可进行开发。
FaceBook 和 Twitter 都有社区驱动的项目,用于以各种语言访问这些 Web 服务。由于您正在为 Android 执行此操作,因此我假设您希望您的程序能够在 Java 中获取此数据。
RestFB是我对 Java FaceBook 库的推荐
FacebookClient facebookClient = new DefaultFacebookClient(authToken);
User facebookUser = facebookClient.fetchObject("me", User.class);
Twitter4j是一个很棒的 Java Twitter 库
您可以使用 Google+ 的活动 API。这目前仅限于公开帖子,但应该足以让您入门。配置文件 ID 来自用户的配置文件。您还可以通过其他方式获取此内容,包括搜索 API。
可以在 Google plus 页面 (https://developers.google.com/+/api/latest/activities) 上找到各种语言的文档和简单示例,以下 JavaScript 示例可能有助于了解事物的工作原理:
// globals used for auth, showing debugging
var debug = true;
var key = "your api key from https://code.google.com/apis/console";
function handleRequestIssue(request){
// For now, just show the error
console.log("Error, status:" + request.status + " / response:" + request.responseText);
}
function performXHR(URL){
var objReturn = "";
var request = new XMLHttpRequest();
request.open('GET', URL, false);
request.send(); // because of "false" above, will block until the request is done
// and status is available. Not recommended, however it works for simple cases.
if (request.status === 200) {
if (debug) console.log(request.responseText);
var objReturn = jQuery.parseJSON(request.responseText).items;
if (debug){
for (value in objReturn){
console.log(value);
}
}
}else{
handleRequestIssue(request);
}
return objReturn;
}
// Gets the activities for a profile
function getActivities(profileID){
var activities = null;
var URL = "https://www.googleapis.com/plus/v1/people/" + profileID + "/activities/public?alt=json&key=" + key;
activities = performXHR(URL);
console.log(activities.length);
return activities;
}
此时您可以在调试器中看到活动。您始终可以将内容呈现为 div 或其他内容中的 HTML。
function renderActsComments(activities, identifier, filter){
var renderMe = "";
console.log("activities retrieved: " + activities.length);
for (var i=0; i < activities.length; i++) {
var render = true;
console.log("trying to do something with an activity: " + i);
var activity = activities[i];
if (filter != null && filter.length > 0){
if (activity.crosspostSource.indexOf(filter) == -1){
render = false;
}
}
if (render == true){
renderMe += "<br/><div class=\"article\"><p>" + activity.title + "</p>";
console.log(activity.id);
// get comments
var comments = getCommentsForActivity(activity.id);
var left = true;
for (var j=0; j<comments.length; j++){
if (left){
left = false;
renderMe += "<br/><p class=\"speech\">" + comments[j].object.content + "</p>";
renderMe += "<a href=\"" + comments[j].actor.url + "\">" + comments[j].actor.displayName + "</a>";
renderMe += "<a href=\"" + comments[j].actor.image.url.replace(/\?.*/, "") + "\">";
renderMe += " <img border=0 src=\"" + comments[j].actor.image.url + "\"/></a>";
renderMe += "</p>";
}else{
renderMe += "<br/><p class=\"speechAlt\">" + comments[j].object.content + "</p>";
left = true;
renderMe += "<p class=\"profileAlt\">";
renderMe += "<a href=\"" + comments[j].actor.image.url.replace(/\?.*/, "") + "\">";
renderMe += "<img border=0 src=\"" + comments[j].actor.image.url + "\"/></a>";
renderMe += "<a href=\"" + comments[j].actor.url + "\"> " + comments[j].actor.displayName + "</a>";
renderMe += "</p>";
}
}
renderMe += "</div>";
}
}
console.log("I'm done");
document.getElementById(identifier).innerHTML = renderMe;
return renderMe;
}