Предположим, что вы хотите отправить сообщение в Facebook по нажатию кнопки.
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button sharebutton = (Button) findViewById(R.id.share_button);
sharebutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (facebook.isSessionValid()) {
postFacebookMessage();
} else {
facebook.authorize(YourActivity.this, new String[] {"publish_stream"}, new FacebookAuthListener() {
@Override
public void onComplete(Bundle values) {
postFacebookMessage();
}
});
}
}
});
...
}
И поместите этот метод в свою деятельность:
private void postFacebookMessage() {
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
Bundle params = new Bundle();
params.putString("message", "I am using great App!");
params.putString("picture", "http://mysite.com/logo.jpg");
mAsyncRunner.request("me/feed", params, "POST", new FacebookPostListener(), null);
}
И добавить этот класс:
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import android.util.Log;
import com.facebook.android.FacebookError;
import com.facebook.android.AsyncFacebookRunner.RequestListener;
public class FacebookPostListener implements RequestListener {
private static final String TAG = "FacebookPostListener";
@Override
public void onComplete(final String response, final Object state) {
Log.d(TAG, "Facebook published the post. Got response: " + response);
}
@Override
public void onFacebookError(FacebookError e, final Object state) {
Log.e(TAG, e.getMessage(), e);
}
@Override
public void onFileNotFoundException(FileNotFoundException e, final Object state) {
Log.e(TAG, e.getMessage(), e);
}
@Override
public void onIOException(IOException e, final Object state) {
Log.e(TAG, e.getMessage(), e);
}
@Override
public void onMalformedURLException(MalformedURLException e, final Object state) {
Log.e(TAG, e.getMessage(), e);
}
}
А это:
import android.os.Bundle;
import android.util.Log;
import com.facebook.android.DialogError;
import com.facebook.android.Facebook.DialogListener;
import com.facebook.android.FacebookError;
public class FacebookAuthListener implements DialogListener {
private static final String TAG = FacebookAuthListener.class.getSimpleName();
@Override
public void onFacebookError(FacebookError e) {
Log.e(TAG, e.getMessage(), e);
}
@Override
public void onError(DialogError e) {
Log.e(TAG, e.getMessage(), e);
}
@Override
public void onComplete(Bundle values) {
}
@Override
public void onCancel() {
// Do nothing
}
}
Я думаю, что это все :)