我是 Facebook 集成的新手在我的应用程序中,我通过 Facebook 成功登录,
但是我要,
使用邀请按钮在列表中显示我所有的 Facebook 好友
向他们发送邀请后
我找到了很多,但我不明白 Facebook 文档,所以任何人都请给我任何相关的例子,
它非常赞赏。
我是 Facebook 集成的新手在我的应用程序中,我通过 Facebook 成功登录,
但是我要,
使用邀请按钮在列表中显示我所有的 Facebook 好友
向他们发送邀请后
我找到了很多,但我不明白 Facebook 文档,所以任何人都请给我任何相关的例子,
它非常赞赏。
我已经放了一些重要的部分来显示 Facebook 朋友正在跟进。有关更多信息和您必须参考的任何问题,
https://developers.facebook.com/
https://developers.facebook.com/docs/games/unity/unity-tutorial
https://github.com/fbsamples/web-friend-smash-v1 和
https://github.com/fbsamples/android-friend-smash-v2
以下主要部分用于显示 fb 好友列表(未安装游戏)以在列表中显示 Facebook 好友:
在您的按钮 onClick 上调用以下函数:
Session session = Session.getActiveSession();
if (session == null || !session.isOpened()) {
return;
}
List<String> permissions = session.getPermissions();
if (!permissions.contains("user_friends")) {
askForFriendsForPlayPermission(session);
} else {
loadFriendsFromFacebook(new FriendsLoadedCallback() {
@Override
public void afterFriendsLoaded() {
// startGame();
close_button_value = 11;
img_close_button.setVisibility(View.VISIBLE);
}
});
}
askForFriendsForPlayPermission(...) : 这个函数帮助获取好友权限,如果你按下是则显示fb好友列表,如下:
private void askForFriendsForPlayPermission(final Session session) {
// user has already said no once this session.
if (application.hasDeniedFriendPermission()) {
} else {
new AlertDialog.Builder(HomeActivity.this)
.setPositiveButton(R.string.dialog_yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
// User hit OK. Request Facebook friends
// permission.
requestFriendsPermission(AUTH_FRIENDS_PLAY_ACTIVITY_CODE);
}
}).setNegativeButton(R.string.dialog_no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User hit cancel. Keep track of deny so
// that we
// only ask once per session
// and then just play the game.
application.setHasDeniedFriendPermission(true);
}
}).setTitle(R.string.with_friends_dialog_title).setMessage(R.string.with_friends_dialog_message)
.show();
}
}
获取 user_friends 权限 - 调用:
private void requestFriendsPermission(int requestCode) {
// --//--Log.d("Permiision", "Requesting friends permissions.");
Session.NewPermissionsRequest newFriendsPermissionsRequest = new Session.NewPermissionsRequest(this,
"user_friends").setRequestCode(requestCode);
Session.getActiveSession().requestNewReadPermissions(newFriendsPermissionsRequest);
}
加载脸书好友:
private void loadFriendsFromFacebook(final FriendsLoadedCallback callback) {
final Session session = Session.getActiveSession();
RequestBatch requestBatch = new RequestBatch();
Request invitableFriendsRequest = Request.newGraphPathRequest(session, "/me/invitable_friends",
new Request.Callback() {
@Override
public void onCompleted(Response response) {
FacebookRequestError error = response.getError();
if (error != null) {
Log.e(CricoApplication.TAG, error.toString());
// handleError(error, true);
} else if (session == Session.getActiveSession()) {
if (response != null) {
// Get the result
GraphObject graphObject = response.getGraphObject();
JSONArray dataArray = (JSONArray) graphObject.getProperty("data");
List<JSONObject> invitableFriends = new ArrayList<JSONObject>();
if (dataArray.length() > 0) {
// Ensure the user has at least one friend
// ...
// fb_friends = new ArrayList<String>();
list_fb_friends = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < dataArray.length(); i++) {
invitableFriends.add(dataArray.optJSONObject(i));
try {
JSONObject json = dataArray.getJSONObject(i);
String str_id = json.getString(TAG_ID);
String str_first_name = json.getString(TAG_FIRST_NAME);
JSONObject picture_obj = json.getJSONObject(TAG_PICTURE);
JSONObject data_obj = picture_obj.getJSONObject(TAG_DATA);
// String str_is_silhouette =
// data_obj.getString(TAG_IS_SILHOUETTE);
String str_url = data_obj.getString(TAG_URL);
// put fb id and friends name in map and add to list view
map_fb_friends = new HashMap<String, String>();
map_fb_friends.put("str_id", str_id);
map_fb_friends.put("str_first_name", str_first_name);
map_fb_friends.put("str_url", str_url);
list_fb_friends.add(map_fb_friends);
fb_friends.add(str_id);
} catch (Exception e) {
e.printStackTrace();
}
}
LazyAdapter_fb_friends adapter = new LazyAdapter_fb_friends(HomeActivity.this,
list_fb_friends);
Your_list_view.setAdapter(adapter);
}
application.setInvitableFriends(invitableFriends);
}
}
}
});
Bundle invitableParams = new Bundle();
invitableParams.putString("fields", "id,first_name,picture");
invitableFriendsRequest.setParameters(invitableParams);
requestBatch.add(invitableFriendsRequest);
// Get the user's list of friends.
// This only returns friends who have installed the game.
Request friendsRequest = Request.newMyFriendsRequest(session, new Request.GraphUserListCallback() {
@Override
public void onCompleted(List<GraphUser> users, Response response) {
FacebookRequestError error = response.getError();
if (error != null) {
Log.e(CricoApplication.TAG, error.toString());
// handleError(error, true);
} else if (session == Session.getActiveSession()) {
// Set the friends attribute
application.setFriends(users);
callback.afterFriendsLoaded();
}
}
});
您可以使用 facebook-id 邀请特定的朋友。