Facebook SDK for Androidを使用してのサンプルを今日から少しずつ書いていこうかと。
SDKの導入に関しては下記のリンクを参照。


Facebook API 入門


Facebookでユーザーのウォールやニュースフィードを取得するにはログイン処理が必要だが今回は割愛。
次回以降に記述する予定です。


以下、サンプル



/*!
 * @file
 *
 * @brief	facebook ウォール/ニュースフィード取得サンプル
 *
 * @author	NoasMark
 *
 * @date	2011/08/24
 */
package jp.noasmark.sampleActivity;

import java.net.URLDecoder;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.view.Window;
import android.os.Bundle;
import org.json.*;
import com.facebook.android.*;
import com.facebook.android.AsyncFacebookRunner.RequestListener;

/*!
 * @brief	sampleActivity
 */
public class sampleActivity extends Activity {
	private static final String[] PERMISSIONS = new String[] {
			"publish_stream",
			"read_stream",
			"offline_access",
	};

	private ProgressDialog		m_prgDialog;
	private Facebook			m_Facebook;
	private AsyncFacebookRunner	m_AsyncRunner;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		m_Facebook = new Facebook("FACEBOOK_APPLI_ID");
		m_AsyncRunner = new AsyncFacebookRunner(m_Facebook);

		// ----------------------------.
		// ログイン処理は省略.
		// ----------------------------.

		showLoadingDialog();
		m_AsyncRunner.request("me/home", new FacebookRequestListener());	// ニュースフィード情報取得.
		//m_AsyncRunner.request("me/feed", new FacebookRequestListener());	// ウォール情報取得.
	}

	public void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		m_Facebook.authorizeCallback(requestCode, resultCode, data);
	}

	public void showLoadingDialog() {
		m_prgDialog = new ProgressDialog(sampleActivity.this);
		m_prgDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
		m_prgDialog.setMessage("Loading...");
		m_prgDialog.show();
	}

	public class FacebookRequestListener implements AsyncFacebookRunner.RequestListener {
		public void onComplete(String response, Object state) {
			m_prgDialog.dismiss();

			try {
				final JSONObject json = new JSONObject(response);
				
				if (json != null) {
					JSONArray data = json.getJSONArray("data");
					final int nLoopLimit = (data != null ? data.length() : 0);

					for (int i = 0; i < nLoopLimit; ++i) {
						JSONObject obj = data.getJSONObject(i);

						if (obj != null) {
							// OBJECT_ID.
							String strObjectID = obj.getString("id");

							// ユーザーIDとユーザー名.
							JSONObject from = obj.getJSONObject("from");
							String strID = from.getString("id");
							String strName = from.getString("name");

							String strMsg = "";

							// メッセージが無い場合もある.
							try {
								strMsg = URLDecoder.decode(obj.getString("message"));
							} catch (Exception e2) {
							}
						}
					}
				}
			} catch (Exception e) {
			}
		}

		public void onFacebookError(FacebookError e, Object state) {
			m_prgDialog.dismiss();
		}

		public void onFileNotFoundException(FileNotFoundException e, Object state) {
			m_prgDialog.dismiss();
		}

		public void onIOException(IOException e, Object state) {
			m_prgDialog.dismiss();
		}

		public void onMalformedURLException(MalformedURLException e, Object state) {
			m_prgDialog.dismiss();
		}
	}
}