2013-04-20 101 views
0

我对开发android应用程序都很陌生,在开发这类应用程序时只有大量的知识。我如何将facebook登录到我刚开始开发的应用程序中?

我试着从做一些Facebook登录功能的实现开始,但是我在Facebook上发现的指南让所有的事情都变得更糟。

我希望有人可以给我一个彻底的从头到尾走过如何使一个Facebook登录开始页面和做适当的身份验证与Facebook的帐户..?

记得我很新的这..

问候 的托马斯

+0

如果您了解围绕AJAX的方法,我可能会推荐[AQuery](http://code.google.com/p/android-query/#AJAX_Callback)。这不是一个严格的Facebook登录API,但这是它的一个特点。 – MowDownJoe 2013-04-20 19:00:54

回答

0

Facebook SDKAndroid可以是人谁是新的Facebook集成到他们的应用程序,特别是对于一个相当复杂新的Android编程。这些教程非常详细,但经常引用已经创建的代码,所以你必须在你面前有该代码(来自Facebook示例)。

但是,使用新的Facebook SDK,只需登录即可“非常容易”。这是通过LoginButton完成的。请注意,我把“非常容易”放在引号中,因为这肯定是一个意见问题。让我试着将其分解成易于遵循的方法,并突出显示我碰到的一些重要事情和问题。

首先,take a look at the Getting Started page.第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"/> 

最后,您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的示例项目。它也使用了很多碎片,所以请确保你也熟悉它们。那么,我希望这有助于!

相关问题