如何在android中使用sdk 4.1.0登录facebook?
[我正在为我的应用程序的登录页面编写代码。我已经使用给定的电子邮件和密码成功登录,但在编写facebook登录代码时遇到问题。我已经检查了此问题如何在android中使用sdk 4.1.0登录facebook?,android,facebook,sdk,facebook-login,Android,Facebook,Sdk,Facebook Login,[我正在为我的应用程序的登录页面编写代码。我已经使用给定的电子邮件和密码成功登录,但在编写facebook登录代码时遇到问题。我已经检查了此问题 但我仍然在按照说明运行代码时出错。我是android开发新手……因此任何适当的帮助都是值得称赞的。提前感谢。]如果您需要自定义登录按钮 在创建方法中 FacebookSdk.sdkInitialize(this.getApplicationContext()); callbackManager = CallbackManager.Factor
但我仍然在按照说明运行代码时出错。我是android开发新手……因此任何适当的帮助都是值得称赞的。提前感谢。]如果您需要自定义登录按钮 在创建方法中
FacebookSdk.sdkInitialize(this.getApplicationContext());
callbackManager = CallbackManager.Factory.create(); // declare it globally "CallbackManager callbackManager "
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>(){
@Override
public void onSuccess(LoginResult result)
{
// TODO Auto-generated method stub
Log.d("LoginManager", "On Success");
}
@Override
public void onError(FacebookException error) {
// TODO Auto-generated method stub
Log.d("LoginManager", "On Error");
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
Log.d("LoginManager", "On Cancel");
}
});
非激活结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
在这里,我提供了一个使用sdk4登录facebook的有效解决方案
首先,在下添加对build.gradle(模块应用程序)的依赖项
依赖项{
编译'com.facebook.android:facebook android sdk:4.1.0'
}
然后同步Gradle。。。。
此后,在Android清单中进行以下更改:-
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id"/> //write the app_id u have generated in res/values/strings.xml folder.
<provider android:authorities="com.facebook.app.FacebookContentProvider456579934439214"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
<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" />
//在res/values/strings.xml文件夹中写入您生成的应用程序id。
在此之后,在您的MainActivity类中编写以下代码:
public class MainActivity extends ActionBarActivity {
LoginButton loginButton;
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(this.getApplicationContext());
callbackManager = CallbackManager.Factory.create();
setContentView(R.layout.activity_main);
loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions("email", "user_likes", "user_friends");
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//callback registration
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile", "user_friends"));
Log.e("-->", Arrays.asList("public_profile", "user_friends").toString());
Toast.makeText(getApplication(), "success", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel() {
// App code
Toast.makeText(getApplication(),"fail",Toast.LENGTH_SHORT).show();
}
@Override
public void onError(FacebookException exception) {
// App code
Toast.makeText(getApplication(),"error",Toast.LENGTH_SHORT).show();
}
});
}
});
}
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
公共类MainActivity扩展了ActionBarActivity{
登录按钮登录按钮;
CallbackManager CallbackManager;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
sdkinInitialize(this.getApplicationContext());
callbackManager=callbackManager.Factory.create();
setContentView(R.layout.activity_main);
loginButton=(loginButton)findviewbyd(R.id.login_按钮);
setReadPermissions(“电子邮件”、“用户喜欢”、“用户朋友”);
loginButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//回调注册
LoginManager.getInstance().registerCallback(callbackManager,
新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this、Arrays.asList(“public\u profile”、“user\u friends”);
Log.e(“-->”,Arrays.asList(“public_profile”,“user_friends”).toString();
Toast.makeText(getApplication(),“success”,Toast.LENGTH_SHORT.show();
}
@凌驾
公开作废{
//应用程序代码
Toast.makeText(getApplication(),“fail”,Toast.LENGTH_SHORT.show();
}
@凌驾
public void onError(facebook异常){
//应用程序代码
Toast.makeText(getApplication(),“error”,Toast.LENGTH_SHORT).show();
}
});
}
});
}
@凌驾
受保护的void onActivityResult(最终int请求代码、最终int结果代码、最终意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}
}
我的activity_main.xml文件如下所示:-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp" />
您可以根据要求自定义按钮如何使用此示例获取用户名?问题是什么?为我解决了问题firebase ui auth library。您的回答是正确的我的问题完全是由于其他原因造成的。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp" />