0

我在 android 应用程序中集成 facebook 时面临问题。我尝试了各种方法,但不幸的是没有得到我想要的结果。我试过 1) Facebook 登录按钮。2) 用于 facebook 集成的自定义按钮。

当我尝试实现 Facebook 登录按钮时,我点击了按钮,但没有出现 Facebook 对话框,它返回到主屏幕......这是我的代码。

LoginButton authButton = (LoginButton) findViewById(R.id.authButton);
          authButton.setOnErrorListener(new OnErrorListener() {

           @Override
           public void onError(FacebookException error) {
            Log.i(TAG, "Error " + error.getMessage());
           }
          });
          // set permission list, Don't foeget to add email
          authButton.setReadPermissions(Arrays.asList("basic_info","email"));
          // session state call back event
          authButton.setSessionStatusCallback(new Session.StatusCallback() {

           @Override
           public void call(Session session, SessionState state, Exception exception) {

            if (session.isOpened()) {
                      Log.i(TAG,"Access Token"+ session.getAccessToken());
                      Request.executeMeRequestAsync(session,
                              new Request.GraphUserCallback() {
                                  @Override
                                  public void onCompleted(GraphUser user,Response response) {
                                      if (user != null) { 
                                       Log.i(TAG,"User ID "+ user.getId());
                                       Log.i(TAG,"Email "+ user.asMap().get("email"));
//                                     lblEmail.setText(user.asMap().get("email").toString());
                                       Toast.makeText(getApplicationContext(), "email", Toast.LENGTH_LONG).show();
                                      }
                                  }
                              });
                  }

           }
          });

2)当我尝试使用自定义按钮时。它给出了我无法理解的错误。为此我的代码是

Button more = (Button) findViewById(R.id.button1);
more.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
         if (! facebook.isSessionValid()) {         
             facebook.authorize(HomeActivity.this, PERMISSIONS, new LoginDialogListener()); 
        });
    }

以及在实现 LoginDialogListener() 时;

private class LoginDialogListener implements DialogListener {

    public void onComplete(Bundle values) {
        saveCredentials(facebook);
        getAlbumsData task = new getAlbumsData();           
        task.execute();
    }

    public void onFacebookError(FacebookError error) {
        showToast("Authentication with Facebook failed!");
    }

    public void onError(DialogError error) {
        showToast("Authentication with Facebook failed!");
    }

    public void onCancel() {
        showToast("Authentication with Facebook cancelled!");
    }
}

这是我的 XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context=".MainActivity" xmlns:app="http://schemas.android.com/apk/res-auto">
    <RelativeLayout 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_alignParentTop="true"
        android:background="@color/blue"
        >

         <Button 
            android:id="@+id/menu"
            android:layout_alignParentLeft="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:background="@drawable/ic_launcher"
            />

        <EditText
            android:id="@+id/search"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_marginRight="78dp"
            android:background="@drawable/ic_launcher"
            android:ems="10" />

    </RelativeLayout>

    <ScrollView
        android:id="@+id/scrollview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="24dp" >

        <TableLayout
            android:id="@+id/TableLayout1"
            android:layout_width="256dp"
            android:layout_height="match_parent"
            android:layout_marginTop="50dp" >

            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:text="Social SIgn In"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <TableRow
                android:id="@+id/fbrow"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <Button
                    android:id="@+id/signIn_fbBtn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="20dp"
                    android:text="FaceBook" />
            </TableRow>
            <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"
         android:layout_marginTop="45dp" />


            <TextView
                android:id="@+id/textView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="20dp"
                android:text="Sign In"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <TableRow
                android:id="@+id/tableRow1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:text="Email" />

                <EditText
                    android:id="@+id/editText1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:layout_marginRight="10dp"
                    android:ems="10"
                    android:hint="abc@gmail.com"
                    android:inputType="textEmailAddress" >

                    <requestFocus />
                </EditText>
            </TableRow>

            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp" >

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:text="Password" />

                <EditText
                    android:id="@+id/editText2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:ems="10"
                    android:hint="*******"
                    android:inputType="textPassword" >

                    <requestFocus />
                </EditText>
            </TableRow>

            <TableRow
                android:id="@+id/tableRow3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="100dp" >

                <Button
                    android:id="@+id/button1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="30dp"
                    android:text="Login" />

            </TableRow>




            <TextView
                android:id="@+id/signup_textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"
                android:text="Not Registered? Sign up!" />

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/g_line" />

            <TextView
                android:id="@+id/textView6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"
                android:text="U Connect 2013!" />

        </TableLayout>
    </ScrollView>

</RelativeLayout>

“权限”是什么意思??getAlbumsData 是什么意思?我在这两个方面都遇到错误...请帮助我...

提前致谢....

4

0 回答 0