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

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

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

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

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

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


この回からいよいよソースコードを書いていきます。


5 Login機能を作成(実装)

5.1 AndroidManifest.xmlを編集します。
 以下のパーミッションを追加します。
<uses-permission android:name="android.permission.INTERNET" />

<application> 

</application>のタグ内に

以下を記述します。

 <activity
            android:name="com.facebook.LoginActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:label="@string/app_name" />

        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/Facebook_AppId" />

※"@string/facebook_appId" にエラーが起きると思いますが
strings.xmlを編集すればエラーは消えます。

5.2 values配下の strings.xmlに 取得したApp IDを記述 します。
<string name="Facebook_AppId">App ID</string>

5.3 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" />

</RelativeLayout>

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

-以下ソース-


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);
    }
    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);
    }
}


ログイン機能の実装は以上となります。デバックして確認してみましょう。
今回はFacebookSDK内部のLoginActivityを使用しているので、素早く
ログイン機能を実装することができました。
ログインパターンは以下の3つがあります。

・Facebook公式アプリがインストールされており、公式アプリでログインしているパターン。
・Facebook公式アプリがインストールされているが、公式アプリでログインしていないパターン。
・Facebook公式アプリがインストールされていないパータン。

コメント

このブログの人気の投稿

レベルアップに必要なXP一覧 Pokemon GO ポケモンGO

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

自動で良い感じの色を抽出してくれるPalette Library がすごい! Android Support Library