如何在 android 中使用 sdk 4.1.0 登录 facebook? [英] How to login facebook using sdk 4.1.0 in android?

查看:26
本文介绍了如何在 android 中使用 sdk 4.1.0 登录 facebook?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

[我正在为我的应用程序的登录页面编写代码.我已经使用给定的电子邮件和密码成功登录,但是我在编写使用 facebook 登录的代码时遇到了问题.我已经检查过了这个 https://developers.facebook.com/docs/facebook-login/android/v2.3

[I"m writing codes for my login Page for my application.i have already made my login successful with the given email and password but i"m facing a problem while writing the codes for login with facebook.I have already checked this https://developers.facebook.com/docs/facebook-login/android/v2.3

但我仍然在按照说明运行我的代码时遇到错误.我是 android 开发的新手...所以任何适当的帮助都是值得称赞的.提前谢谢.]1

but still i"m getting errors while running my code as per instructions.I"m new to android developing...so any proper help would be praiseworthy.Thankx in advance.]1

推荐答案

我在这里提供了一个使用 sdk4 登录 facebook 的可行解决方案.

Here i"m providing a working solution for facebook login with sdk4.

首先在build.gradle(Module app)下添加依赖依赖{......

First of all add dependency on build.gradle(Module app) under dependencies {......

编译'com.facebook.android:facebook-android-sdk:4.1.0' }然后同步 Gradle....此后,在 Android Manifest 中进行以下更改:-

compile 'com.facebook.android:facebook-android-sdk:4.1.0' } Then Sync Gradle.... Thereafter,in Android Manifest do the following changes:-

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
 <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/app_id"/> //write the app_id u have generated in res/values/strings.xml folder.
<provider android:authorities="com.facebook.app.FacebookContentProvider456579934439214"
              android:name="com.facebook.FacebookContentProvider"
              android:exported="true" />

 <activity android:name="com.facebook.FacebookActivity"
              android:configChanges=
                  "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
              android:theme="@android:style/Theme.Translucent.NoTitleBar"
              android:label="@string/app_name" />

之后在你的 MainActivity 类中编写以下代码:

After this write the following codes in ur MainActivity class:

    public class MainActivity extends ActionBarActivity {
LoginButton loginButton;
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    FacebookSdk.sdkInitialize(this.getApplicationContext());
    callbackManager = CallbackManager.Factory.create();

    setContentView(R.layout.activity_main);

    loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setReadPermissions("email", "user_likes", "user_friends");

    loginButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //callback registration

            LoginManager.getInstance().registerCallback(callbackManager,
                    new FacebookCallback<LoginResult>() {
                        @Override
                        public void onSuccess(LoginResult loginResult) {
                            // App code

                            LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile", "user_friends"));
                            Log.e("-->", Arrays.asList("public_profile", "user_friends").toString());
                            Toast.makeText(getApplication(), "success", Toast.LENGTH_SHORT).show();


                        }

                        @Override
                        public void onCancel() {
                            // App code
                            Toast.makeText(getApplication(),"fail",Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onError(FacebookException exception) {
                            // App code
                            Toast.makeText(getApplication(),"error",Toast.LENGTH_SHORT).show();
                        }
                    });
        }
    });

}



@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

}

我的activity_main.xml文件如下:-

My activity_main.xml file are as follows:-

<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.login.widget.LoginButton
    android:id="@+id/login_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="30dp"
    android:layout_marginBottom="30dp" />

您可以根据需要自定义按钮

U can customize the button as per requirement

这篇关于如何在 android 中使用 sdk 4.1.0 登录 facebook?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆