android Facebook登陆获取用户信息

来源:互联网 发布:人类的战斗力 知乎 编辑:程序博客网 时间:2024/06/05 08:18

第一步:准备工作

注册facebook开发者https://developers.facebook.com/获取ApplicationId,老样子翻墙用蓝灯,可能会被facebook冻结账号,需要上传个人信息验证。

第二步:在Module中添加依赖

compile 'com.facebook.android:facebook-android-sdk:4.20.0'

第三步:在AndroidManifest.xml文件中添加meta-data

   <activity            android:name="com.facebook.FacebookActivity"            android:exported="true"            android:label="@string/app_name"/><meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />

第四步:代码

public class OtherLoginActivity extends BaseActivity {    private CallbackManager callbackManager;    private String userId = "";    private String name = "";    private String imgUrl = "";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        FacebookSdk.sdkInitialize(getApplicationContext());        callbackManager = CallbackManager.Factory.create();        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {            @Override            public void onSuccess(LoginResult loginResult) {                getFacebookInfo(loginResult.getAccessToken());            }            @Override            public void onCancel() {            }            @Override            public void onError(FacebookException e) {            }        });        setContentView(R.layout.activity_other_login);           }    public void getFacebookInfo(AccessToken accessToken) {        userId = accessToken.getUserId();        GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {            @Override            public void onCompleted(JSONObject object, GraphResponse response) {                if (object != null) {                    name = object.optString("name");                    goLogin();                }            }        }).executeAsync();    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        callbackManager.onActivityResult(requestCode, resultCode, data);    }    @OnClick({R.id.tv_facebook})    @Override    public void onClick(View v) {      LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));    }    //TODO:got the token,Notify server,and do something    private void goLogin() {    }}
0 0
原创粉丝点击