0

私はたくさん検索しましたが、StackOverflow でも私のものと同じ質問がいくつか見られますが、答えは得られませんでした。

ユーザー (google+ および facebook) のメッセージを取得して、彼/彼女のアカウントで投稿されたものは何でも取得し、それをモバイル アプリへの xml 応答として提供して、ユーザーの投稿をより適切な形式/デザインとして表示する必要があります。 profile-id/username を使用した google+/facebook からの投稿。

例: Twitter のように、ステータスを確認できます。

https://api.twitter.com/1/statuses/user_timeline.xml?include_entities=true&include_rts=true&screen_name=screenname&count=2

それを入手できるライブラリや特定の方法はありますか?

前もって感謝します。

4

2 に答える 2

1

私が利用したソーシャル メディア API は 2 つだけなので、Facebook と Twitter としか話せません。

どちらの API も RESTful サービスです。Twitter と Facebook の場合、RESTful サービス経由でデータを取得するアプリケーション のOAuthトークンを取得するために、パースペクティブ プラットフォームでアプリケーションを作成する必要があります。

FaceBook の場合、Graph API エクスプローラーを開発に利用できます。これにより、FaceBook プラットフォームでアプリケーションを作成せずに開発できます。

FaceBook と Twitter の両方に、さまざまな言語でこれらの Web サービスにアクセスするためのコミュニティ主導のプロジェクトがあります。Android でこれを行っているので、プログラムでこのデータを Java で取得する必要があると思います。

RestFBは、Java FaceBook ライブラリの私の推奨事項です。

FacebookClient facebookClient = new DefaultFacebookClient(authToken);
User facebookUser = facebookClient.fetchObject("me", User.class);

Twitter4jは優れた Java Twitter ライブラリです。

FaceBookの場合、コア コンセプトは出発点として最適です。Twitter の詳細については、概要ドキュメントを参照してください。

于 2012-08-29T22:14:31.523 に答える
0

Google+ のアクティビティ API を使用できます。これは現在、公開投稿に制限されていますが、始めるには十分なはずです。プロファイル ID は、ユーザーのプロファイルから取得されます。検索 API など、このコンテンツを取得する方法は他にもあります。

さまざまな言語のドキュメントと簡単な例は、Google プラス ページ (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;
}
于 2012-08-30T00:06:29.413 に答える