第三方登陆
详细配置请参照网络资源
sdk地址http://pan.baidu.com/s/1bp6xngr
使用方式
1.初始化
callbackManager = CallbackManager.Factory.create();
2.登陆回调
private FacebookCallback<LoginResult> facebookCallback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
facebookUserId = loginResult.getAccessToken().getUserId();
accessToken = loginResult.getAccessToken();
//重置按钮状态
LoginManager.getInstance().logOut();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
ToastUtil.showShort(LoginActivity.this, getString(R.string.failed_no_internet));
}
};
3.获得用户信息
//获得用户信息
loadingDialog.show();
GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject jsonObject, GraphResponse response) {
loadingDialog.hide();
try {
if(response.getError()!=null){
Log.e("error", "onCompleted: " +response.getError().getErrorMessage());
ToastUtil.showShort(LoginActivity.this, getResources().getString(R.string.fall_to_get_user));
} else if (response.getConnection().getResponseCode() == 200){
name = jsonObject.getString("name");
if (jsonObject.has("gender")){
gender = jsonObject.getString("gender").equals("male")?"先生":"小姐";
}
if (jsonObject.has("picture")){
picture = jsonObject.getJSONObject("picture").getJSONObject("data").getString("url");
}
if (jsonObject.has("email")){
email = jsonObject.getString("email");
}
//做登陆业务逻辑
}
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,gender,picture,email");
request.setParameters(parameters);
request.executeAsync();
4.loginManager
LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this, Arrays.asList("public_profile,email"));//权限
LoginManager.getInstance().registerCallback(callbackManager, facebookCallback);
5.loginButton
具体使用时样式上有限制,故未采用。
6.个人信息的权限说明
登陆授权具有时效性,若拒绝授权之后有反复请求授权,会导致体验差,用户流失。
可获得信息 (默认权限)
id 用户ID
name 全名
first_name 名
last_name 姓
age_range 年龄范围
link 用户连接
gender 性别
locale 语言环境
picture 用户头像图片链接
timezone 时区
updated_time 上次更新时间
verified 是否通过验证
email 邮件地址
其他权限,这权限都需要通过Facebook的审核,同时也需要用户在登录时完成授权,应用才能正常使用这些权限
user_about_me
user_actions.books
user_actions.fitness
user_actions.music
user_actions.news
user_actions.video
user_actions:{app_namespace}
user_birthday
user_education_history
user_events
user_games_activity
user_hometown
user_likes
user_location
user_managed_groups
user_photos
user_posts
user_relationships
user_relationship_details
user_religion_politics
user_tagged_places
user_videos
user_website
user_work_history
read_custom_friendlists
read_insights
read_audience_network_insights
read_page_mailboxes
manage_pages
publish_pages
publish_actions
rsvp_event
pages_show_list
pages_manage_cta
pages_manage_instant_articles
ads_read
ads_management
pages_messaging
pages_messaging_phone_number
Deprecated Permissions
manage_notifications
read_stream
read_mailbox
user_groups
user_status