gpt4 book ai didi

android - 如何在 android 中使用 sdk 4.1.0 登录 facebook?

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:53 25 4
gpt4 key购买 nike

[我正在为我的应用程序的登录页面编写代码。我已经使用给定的电子邮件和密码成功登录,但是我在编写使用 facebook 登录的代码时遇到了问题。我已经检查过了这个https://developers.facebook.com/docs/facebook-login/android/v2.3

但我仍然在按照说明运行我的代码时遇到错误。我是 android 开发的新手...所以任何适当的帮助都是值得称赞的。提前感谢。] 1

最佳答案

我在这里为使用 sdk4 的 facebook 登录提供了一个可行的解决方案。

首先在build.gradle(Module app)下添加依赖 依赖关系{......

编译 'com.facebook.android:facebook-android-sdk:4.1.0' }然后同步 Gradle ....此后,在 Android Manifest 中进行以下更改:-

<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" />

在此之后,在您的 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);
}

我的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" />

您可以根据需要自定义按钮

关于android - 如何在 android 中使用 sdk 4.1.0 登录 facebook?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30233042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com