如何将facebook登录到我刚开始开发的应用程序中?

时间:2013-04-20 18:51:22

标签: android facebook authentication login

我对开发Android应用程序都很陌生,在开发这样的应用程序时只有很多知识。

我正在尝试开始实施Facebook登录功能,但我在Facebook上找到的指南使一切都比它应该更糟。

我希望有人可以从头到尾详细介绍如何制作Facebook登录开始页面并使用facebook帐户进行适当的身份验证。?

记住我对此很新......

最好的问候 托马斯

1 个答案:

答案 0 :(得分:0)

Facebook SDK Android对于那些刚刚将Facebook集成到他们的应用中的人来说非常复杂,特别是对于刚接触Android编程的人。这些教程非常详细,但经常引用已经创建的代码,因此您必须在您面前拥有该代码(来自Facebook示例)。

然而,使用新的Facebook SDK,登录时“非常简单”。这是通过LoginButton完成的。请注意,我在引号中加上“非常简单”,因为这肯定是一个意见问题。让我试着把它分解成一个易于理解的方法,并突出我遇到的一些重要的事情和问题。

首先,take a look at the Getting Started page.特别注意第3步(“将SDK导入Eclipse”),第4步结束(“运行样本”)和第5步(“创建一个” Facebook App“)。步骤4的结尾是您生成将在下一步中使用的keyhash的位置。请注意,当命令提示符代码引用openssl时,它意味着将整个路径放到openssl应用程序中。如果你没有它,你需要下载它。此外,此步骤很重要,因为它不允许您登录,除非它是正确的。

接下来,保存上面收到的应用ID(在入门的第5步)并将其保存到字符串资源中,如下所示:

<string name="app_id">YOUR_APP_ID_HERE</string>

然后,在您的清单文件中,将其置于Activity标记内的所有其他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/app_id"/>

此外,在您的清单中,请确保您拥有以下权限:

<uses-permission android:name="android.permission.INTERNET"/>

现在,在布局xml文件中你需要LoginButton,输入如下内容:

    <com.facebook.widget.LoginButton
    android:id="@+id/login_button"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_margin="10dp"
    android:layout_gravity="center_horizontal"/>

最后,在您的ActivityFragment中,您可以设置OnErrorListener,如下所示:

    // Set an error listener for the login button
    LoginButton loginButton = (LoginButton) v.findViewById(R.id.login_button);
    if (loginButton != null) {
        loginButton.setOnErrorListener(new OnErrorListener() {

            @Override
            public void onError(FacebookException error) {
                if (error != null && !(error instanceof FacebookOperationCanceledException)) {
                    // Failed probably due to network error (rather than user canceling dialog which would throw a FacebookOperationCanceledException)
                    ((HangmanActivity) getActivity()).showError(getResources().getString(R.string.network_error), false);
                }
            }

        });
    }

您可以将上述代码放在onCreateonCreateView方法中。上面的代码看到是否由于互联网连接丢失而出现错误。现在,如果你运行你的应用程序,你应该能够点击LoginButton,它会将你登录到Facebook,然后它将切换到说“退出”(再次点击时会将你注销)。这就是登录的全部内容,但是,如果您想添加更多功能,我建议您查看Facebook的其他教程like this one.注意,我刚才所说的教程引用了他们提供的示例项目使用SDK。它还使用了大量碎片,因此请确保您也熟悉它们。好吧,我希望有所帮助!