Kyi*_*zin 2 android facebook-login
我想在我的Android应用程序中添加登录facebook功能.我怎样才能做到这一点?是对的吗?https://developers.facebook.com/docs/facebook-login/android
eld*_*o87 11
第一步
你注册了自己的应用吗?如果没有,请转到https://developers.facebook.com/apps/,单击右上角的添加新应用程序并按照说明操作.
第二步
第二步是将Facebook SDK添加到您的项目中.您可以按照https://developers.facebook.com/docs/android/getting-started进行操作
在Android Studio中,使用API 15创建一个新项目作为最低SDK
Facebook SDK可在Maven Central上使用,因此请先编辑build.gradle并添加 repositories { mavenCentral() }dependencies
然后,添加compile 'com.facebook.android:facebook-android-sdk:4.7.0在dependencies
构建您的项目并将Facebook SDK初始化到您的应用程序中
代码如下:
import com.facebook.FacebookSdk;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
}
Run Code Online (Sandbox Code Playgroud)
第三步
您在注册应用时收到的Facebook应用ID应添加到您的应用中strings.xml.
<string name="facebook_app_id">123456908761030</string>
Run Code Online (Sandbox Code Playgroud)
的,你必须编辑您的AndroidManifest.xml加入INTERNET uses-permission(能够连接到Facebook的服务器)和一meta-data对Application元素(Facebook应用程序ID).
<uses-permission android:name="android.permission.INTERNET"/>
<application android:label="@string/app_name" ...>
...
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
...
</application>
Run Code Online (Sandbox Code Playgroud)
第四步
FacebookActivity在您的清单中定义为另一个活动.如果处理大多数配置使用自行更改configChanges.
<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" />
Run Code Online (Sandbox Code Playgroud)
第五步
在XML布局中创建/添加登录按钮(无论您想要的位置).
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
Run Code Online (Sandbox Code Playgroud)
第六步
在您的Activity中,将您在布局中定义的窗口小部件声明为类的字段.
private LoginButton loginButton;
Run Code Online (Sandbox Code Playgroud)
声明一个CallbackManager另一个字段来管理应用程序中使用的回调.
private CallbackManager callbackManager;
Run Code Online (Sandbox Code Playgroud)
初始化您的实例CallbackManager.
callbackManager = CallbackManager.Factory.create();
Run Code Online (Sandbox Code Playgroud)
使用初始化小部件findViewById.
loginButton = (LoginButton) view.findViewById(R.id.usersettings_fragment_login_button);
Run Code Online (Sandbox Code Playgroud)
最后一步
创建一个回调来处理登录结果:
如果登录尝试成功,onSuccess则调用
如果用户取消登录尝试,onCancel则调用
如果发生错误,onError则调用
代码是:
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException e) {
// App code
}
});
Run Code Online (Sandbox Code Playgroud)
然后,在onActivityResult():
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)
一些链接
教程TutsPlus:LINK
应用示例(slidenerd):LINK
视频教程(slidenerd):LINK
获取登录的用户信息:LINK
| 归档时间: |
|
| 查看次数: |
3610 次 |
| 最近记录: |