[最新]AndroidStudioでFacebook連携アプリを作ろう[文字投稿&写真投稿]その6投稿機能(文字)の作成

AndroidStudioでFacebook連携アプリを作ろうシリーズの作業その6です。

このシリーズでは7回に分けて、AndroidStudio0.8.9を使用し、
Facebook連携アプリを開発していきます。
Eclipseの方も、ライブラ追加以外は参考になると思います。
既に終了済みの作業は飛ばしてもらってかまいません。

※現在のAndroidStudio最新バージョンは0.8.13です。

リンク
1.FacebookSDKのダウンロード
2.AndroidStudio新規プロジェクトの作成
3.FacebookSDKの導入
4.FacebookAppの登録
5.Login機能の作成
6.投稿機能(文字)の作成
7.投稿機能(文字と画像)の作成
まとめ

参考サイト:
FacebookDevelopers
クラスメソッド株式会社


6.投稿機能の作成(実装)~文字編~

"Hello"という文字を投稿してみます。

6.1 レイアウトのxmlファイルに投稿ボタンを作成します。ここではactivity_main.xml

-以下ソース-

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <com.facebook.widget.LoginButton
        android:id="@+id/authButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:onClick="postActionClick"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Post"
        android:layout_centerInParent="true"/>

</RelativeLayout>


6.2 Javaファイルを編集します。ここではMainActivity.java

  xmlのボタンのタグ内で記述した、onClickは
Javaファイルで、まったく同じ名前でメソッドを定義すると
クリック時のイベントをとってくれます。
ここでは、postActionClickとします。

-以下ソース-

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import com.facebook.Request;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.UiLifecycleHelper;


public class MainActivity extends Activity {

    private UiLifecycleHelper uiHelper;

    private Session.StatusCallback callback = new Session.StatusCallback() {
        @Override
        public void call(Session session, SessionState state, Exception exception) {
            onSessionStateChange(session, state, exception);
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        uiHelper = new UiLifecycleHelper(this, callback);
        uiHelper.onCreate(savedInstanceState);
    }

    public void postActionClick(View v) {
        Session session = Session.getActiveSession();
        String  sendText = "Hello";
        if (session.isOpened()) {
            Request.newStatusUpdateRequest(session, sendText, new
                    Request.Callback() {
                        @Override
                        public void onCompleted(Response response) {
                            if (response.getError() == null) {
                                //成功
                            } else {
                                //失敗
                            }
                        }
                    }).executeAsync();
        }
    }
    private void onSessionStateChange(Session session, SessionState state, Exception exception) {
        if (state.isOpened()) {
            //ログイン
        } else if (state.isClosed()) {
            //ログアウト
        }
    }

    @Override
    public void onResume() {
        super.onResume();
        uiHelper.onResume();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        uiHelper.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    public void onPause() {
        super.onPause();
        uiHelper.onPause();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        uiHelper.onDestroy();
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        uiHelper.onSaveInstanceState(outState);
    }
}


文字投稿の実装は以上となります。デバックして確認してみましょう。
※ログイン処理は必ず終えてください。
自分のタイムラインに"Hello"が投稿されていれば成功です。

作業は以上となります。下記リンクより次の作業に進んでください。

リンク
1.FacebookSDKのダウンロード
2.AndroidStudio新規プロジェクトの作成
3.FacebookSDKの導入
4.FacebookAppの登録
5.Login機能の作成
6.投稿機能(文字)の作成
7.投稿機能(文字と画像)の作成
まとめ

参考サイト:
FacebookDevelopers
クラスメソッド株式会社


コメント

このブログの人気の投稿

[初心者向け]AndroidStudioで地図アプリを作ってみよう![2015年8月最新]

GeoFencing (サンプルコード)

[最新]AndroidStudioでFacebook連携アプリを作ろう[文字投稿&写真投稿]