您的位置:首页 > 其它

Facebook

2016-06-16 17:38 330 查看
第三方登陆

详细配置请参照网络资源

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

查询方法

https://graph.facebook.com/106160063145668?fields=id,name,first_name,last_name,link,locale,picture,updated_time,verified&access_token=EAAV1cO8wUd0BACiJhugcVi0illSzHhL5zdPlDoRxexyrZBeen51zt0hzP5C6jfpZCqh2rLRDuNtxgUeoxSz8ENFK6pDkHCoe8ar5vrYFqmFVj1DKVhltu5uL9oDzZCr90KDwYjcQhfcP1mMQZAhPMBHSmoZCkZBnmJ0pAqmJa9djNB8PAe2ZBv1aTuZAjJJyhU0vOId08sabAAZDZD
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息