我对开发 android 应用程序非常陌生,并且在开发此类应用程序时只有基础知识。
我试图从实现 Facebook 登录功能开始,但我在 Facebook 上找到的指南让一切都变得比应有的更糟。
我希望有人可以从头到尾给我一个彻底的演练如何制作一个 facebook 登录起始页面并使用一个 facebook 帐户进行正确的身份验证..?
记住我对此很陌生..
最好的问候托马斯
我对开发 android 应用程序非常陌生,并且在开发此类应用程序时只有基础知识。
我试图从实现 Facebook 登录功能开始,但我在 Facebook 上找到的指南让一切都变得比应有的更糟。
我希望有人可以从头到尾给我一个彻底的演练如何制作一个 facebook 登录起始页面并使用一个 facebook 帐户进行正确的身份验证..?
记住我对此很陌生..
最好的问候托马斯
对于不熟悉将 Facebook 集成到他们的应用程序中的人,尤其是对于 Android 编程的新手来说, Facebook SDK
forAndroid
可能非常复杂。这些教程非常详细,但经常引用已经创建的代码,因此您必须在您面前拥有该代码(来自 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"/>
最后,在您的Activity
orFragment
中,您可以设置一个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);
}
}
});
}
您可以将上述代码放在onCreate
oronCreateView
方法中。上面的代码查看是否由于 Internet 连接丢失而出现错误。现在,如果您运行您的应用程序,您应该能够点击LoginButton
,它会将您登录到 facebook,然后它会切换到说“注销”(再次单击时会将您注销)。这就是登录的全部内容,但是,如果您想添加更多功能,我建议您查看 Facebook 的其他类似教程。请注意,我刚才所说的教程引用了他们随 SDK 提供的示例项目。它还使用了很多片段,因此请确保您也熟悉它们。好吧,我希望这会有所帮助!