Facebookアクセスのログインアクセス


1.Facebookにアクセスするには、まずFacebookのSDK、アドレス(https://developers.facebook.com/docs/android?locale=zh_CN)
  • 彼の例demoをダウンロードして、その中の主要なクラスと方法の使用
  • を表示します.
  • 次はAndroidプロジェクトを新設Facebookのログイン機能を実現しましたa)まずFacebookのsdk,b)を導入Androidプロジェクトを新設し、このsdkc)をAndroid Manifestに導入しました.xmlでは、以下の内容を
  • にコピーします.
              
    <!-- beigin、、、、、 FaceBook       -->
           <!--     app_id         -->
            <meta-data
                android:name="com.facebook.sdk.ApplicationId"
                android:value="@string/app_id" />
     
           <!-- FaceBook       -->
            <activity
                android:name="com.facebook.LoginActivity"
                android:label="@string/app_name"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" />
           <!-- end、、、、、 FaceBook       -->

    あなたが申請したappが含まれています.idとFacebookのSdkでのログインで使用するActivity.
  • 申請したappIdをstringに置く.xml内
  • <string name="app_id">355198514515820</string>
  • Activityを新規作成するか、MainActivityにレイアウト
  • を追加できます.
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <com.facebook.widget.LoginButton
            android:id="@+id/loginButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true" />
    </RelativeLayout>

    Facebook SDKで定義されているログインボタンが含まれています
  • Activityインタフェースに戻り、次のコード
  • を追加します.
    private LoginButton loginButton = null;
    private UiLifecycleHelper uiHelper = null;
       @Override
        protected void onResume() {
            super.onResume();
     
            uiHelper.onResume();
        }
     
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            uiHelper.onActivityResult(requestCode, resultCode, data);
        }
     
        @Override
        protected void onPause() {
            super.onPause();
            uiHelper.onPause();
        }
     
        @Override
        protected void onDestroy() {
            super.onDestroy();
            uiHelper.onDestroy();
    }
  • g)OnCreateメソッドでFacebookを初期化するいくつかのメソッド
  • loginButton = (LoginButton) this.findViewById(R.id.loginButton);
     
        //     
            loginButton.setReadPermissions(permissions);
    /**     */
        private void initFacebook(Bundle savedInstanceState) {
            uiHelper = new UiLifecycleHelper(this, callback);
            uiHelper.onCreate(savedInstanceState);
        }
        StatusCallback callback = new Session.StatusCallback() {
            // Session     Request      ,
            @Override
            public void call(Session session, SessionState state, Exception exception) {
                onSessionStateChange(session, state, exception);
            }
        };
    private void onSessionStateChange(Session session, SessionState state, Exception exception) {
     
            if (state.isOpened()) {
                currentSession = session;
                fetchUserInfo();
            }
        }
    /**         */
        private void fetchUserInfo() {
            if (currentSession != null && currentSession.isOpened()) {
                Request request = Request.newMeRequest(currentSession,
                        new Request.GraphUserCallback() {
     
                            @Override
                            public void onCompleted(GraphUser user,
                                    Response response) {
                                if (response.getRequest().getSession() == currentSession) {
     
                                    Log.e("First Name", user.getFirstName());
                                    Log.e("Last Name", user.getLastName());
                                    Log.e("id ", user.getId());
                                    Log.e("User Name", "" + user.getUsername());
                                    Log.e("Inner JSONObject", "" + user.getInnerJSONObject().toString());
                                    Log.e("Birthday", "" + user.getBirthday());
                                    Log.e("Link", "" + user.getLink());
                                    Log.e("Name", "" + user.getName());
                                    Log.e("property", "" + user.getProperty("name"));
                                    
                                }
                            }
     
                        });
                request.executeAsync();
            }
     }

    少し乱れていると感じたら、工事を参照してください.http://download.csdn.net/detail/yingshetou123/8416481