0

我对开发 android 应用程序非常陌生,并且在开发此类应用程序时只有基础知识。

我试图从实现 Facebook 登录功能开始,但我在 Facebook 上找到的指南让一切都变得比应有的更糟。

我希望有人可以从头到尾给我一个彻底的演练如何制作一个 facebook 登录起始页面并使用一个 facebook 帐户进行正确的身份验证..?

记住我对此很陌生..

最好的问候托马斯

4

1 回答 1

0

对于不熟悉将 Facebook 集成到他们的应用程序中的人,尤其是对于 Android 编程的新手来说, Facebook SDKforAndroid可能非常复杂。这些教程非常详细,但经常引用已经创建的代码,因此您必须在您面前拥有该代码(来自 Facebook 示例)才能继续学习。

但是,使用新Facebook SDK的 . 登录时“非常容易”。这是通过LoginButton. 请注意,我将“非常容易”放在引号中,因为这当然是一个见仁见智的问题。让我试着把它分解成一个易于遵循的方法,并强调我遇到的一些重要的事情和问题。

首先,看一下入门页面。特别看一下第 3 步(“将 SDK 导入 Eclipse”)、第 4 步的结尾(“运行示例”)和第 5 步(“创建 Facebook 应用程序”)。第 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"/>

最后,在您的ActivityorFragment中,您可以设置一个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);
                }
            }

        });
    }

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

于 2013-04-22T00:07:47.707 回答