App and Game Groups is currently in Beta. While in beta, only games that are in the App Center will have Game Groups enabled. For development purposes, the Game Groups API will work for application admins, developers, testers and test users.
Apps and games can now create and manage Groups via the Graph API to help people connect and share their experiences.
Groups are a natural fit for games. Many games organize their players into clans, alliances, teams or other types of groups to accomplish tasks within the game. Gamers already create their own Groups to hang out with other players, share information about the game, and make plans to collaborate in-game.
People who interact more with other players will be more invested in the game, play longer and are more likely to pay.
We will refer to the feature as "Game Groups" going forward in this document.
This document walks through
Access to social channels. Game Groups can access the same social channels as regular Facebook Groups–bookmarks, notifications, and calendar reminders— increasing the likelihood people will come back to engage with your game’s community.
Making games more social. Game Groups add another social layer to games by allowing people to collaborate, share and express their gamer identity with other players.
Engaging & retaining players. Game Groups facilitate community interaction and drive deeper connections among players, leading to more engaged players who play longer.
Developers can use Game Groups to build a group experience right into their game. We’ve built a set of APIs that enable games to create groups and manage membership.
Players in a Game Group can also interact outside of the game. A bookmark to the Game Group will appear in the person's navigation area. These groups are special Facebook Groups that belong to a game.
Games can integrate with groups from within the game. Players can post into the group from within the game. This is useful for sharing screenshots or screencasts. Players can also create events from within the game. These will appear as group events on Facebook.
Please note the policy rules throughout this document to ensure you are incorporating Game Groups appropriately.
Your app must be in the App Center to be able to use Game Groups.
Players may want to create their own group. Games can have players provide parameters like name, description and privacy. Games should consider making the creator of the group the default administrator which can be done in the group creation call. The privacy setting can be used to control who sees the group.
Policy: When a player is creating a Game Group there must be explicit messaging in the UI which communicates that the player is also creating a Facebook Group.
Games should build an interface where players can view groups. When a player views a group, games can list which members are in a specific group. Games can also list the groups that a player belongs to.
After viewing a group, a player may want to join. Games should provide browse or search functionality to help players find groups. Games could also suggest groups for the player to join in order to optimize the game experience (for example, based on geographical location or skill level).
Policy: When a player is joining a Game Group there must be explicit messaging in the UI which communicates that they are also joining a Facebook Group.
Games need to create a request and approve flow for users to be added to groups. Usually there are 2 kinds of flows for users to be added to groups.
In one flow, players find a group they want to join and request to join. The request is sent to the admin and they approve or deny the join request. In the second flow, admins invite players to join they group. The player receives the invite and then approves or denies being added to the group.
You must build this flow into your game. You can use App Notifications or Requests to message a player or admin that a join request has been sent.

This is an example of using App Notifications to message to the user that they've been invited to the group.
When you want to add the player to the group (after the admin and player has approved), you can call the add api. When the player has been added to the group, a notification will be sent to the user that the player has been added. The notification will look like it came from the game.
The notification can also be sent on behalf of a person which causes the notification to look like it came from the person instead of the game.
When players click this notification they will be taken to the group page.
Groups usually have an administrator that have special abilities. If a group is being created by a player, the game should consider making them an admin. A parameter can be passed during group creation to accomplish this.
Games should build a request mechanism for members who want to join groups that are closed or secret. Admins usually manage these requests.
Admins have the ability to set the cover photo. Games can help admins personalize their groups by providing a way to use in-game content as a cover photo.
Game can also help admins control their group by exposing the functionality to remove members and promote other members to admins.
After a player joins a group, a bookmark to the group will appear in their navigation area.
With Game Groups, games can post stories to groups from the game. This creates a way for players to share game content into their group and keep players engaged with the game. Players will see notifications when content is shared.
Players can also navigate back to the group via a bookmark that appears in the navigation area.
Policy: When posting to a group there must be explicit messaging in the UI which communicates that players's content can be accessed by members of the group and is not restricted by their app privacy level.
The player is prompted to share a screenshot of his base from the game to his clan.
The story has been shared in the group. Also note that bookmarks are generated for Game Groups.
Members of the group will receive notifications when content is shared in the group.
Games can bring players back into the game by creating group events. The current list of events for a group can be retrieved.
When group members are invited to an event, a notification will appear.
Group events will appear as calendar notifications.
App and Game Groups uses a number of different objects across the Graph API. This page aggregates all those calls into a single reference so you can easily understand where to find various calls.
App and Game Groups is designed so that apps can create and manage groups to help people connect and share their experiences. One of the main use cases for Groups is games, which already organize their players into groups through clans, alliances, guilds or other game communities. For this reason, we will refer to the feature as "Game Groups" going forward in this document.
This feature exposes an API to do the following:
Game Groups have a privacy setting which controls who sees the group.
Game Groups are created and controlled by the application.
Applications can get all the groups that belong to an application by issuing a GET request to /APP_ID/groups with an app access_token.
If the action is successful, the response will be an array that contains elements with the following properties:
| Name | Description | Type |
|---|---|---|
id |
The id of the group. | string |
name |
The name of the group. | string |
Applications can get all the groups a user belongs in an application by issuing a GET request to /me/groups?parent=APP_ID with a user access_token. This requires the user_groups permission.
If the action is successful, the response is an array in which each element contains:
| Name | Description | Type |
|---|---|---|
id |
The id of the group. | string |
name |
The name of the group. | string |
administrator |
The user is administrator of the group. This field will only be returned if the user is an administrator. | boolean |
Policy: When a user is creating a Game Group there must be explicit messaging in the UI which communicates that the user is also creating a Facebook Group.
Applications create a group issuing a POST request to /APP_ID/groups with an app access_token. Optionally, a user can be set as an admin of a group by setting the admin parameter.
| Parameter | Description | Type | Required |
|---|---|---|---|
name |
A name for the group. | string |
yes |
description |
A description for the group. | string |
no |
privacy |
The privacy setting for the group. | string (open, closed, secret) |
no (default: closed) |
admin |
The user ID of the admin. | string |
no |
If the action is successful, the response will contain:
| Name | Description | Type |
|---|---|---|
id |
The id of the group. | string |
Policy: Developers should build a confirmation action in the user experience to make sure users want to delete groups.
Applications delete a group issuing a DELETE request to /APP_ID/groups/GROUP_ID with an app access_token.
If the group has no members, the group will be irreversibly deleted. If the group has members, the group will no longer be associated with the application and become a normal Facebook Group.
If the action is successful, the response will contain true.
Applications can get the list of members that belong to a group by issuing a GET request to /GROUP_ID/members with an app access_token.
If the action is successful, the response will contain:
| Name | Description | Type |
|---|---|---|
id |
The id of the user. | string |
name |
The name of the user. | string |
administrator |
The user is administrator of the group. | boolean |
Policy: When a user is joining a Game Group there must be explicit messaging in the UI which communicates that they are also joining a Facebook Group.
Applications can add users to a group by issuing a POST request to /GROUP_ID/members/USER_ID with an app access_token.
Note that user being added must be a user of the application. The user will be sent a notification saying that they have been "invited" to the group. The notification will take them to the group page. Users can only be added once. Subsequent adds will fail.
Optionally, a from parameter can be passed in the request. If the from parameter is included, then the add notification will look like it was sent by the from user. If this parameter is not included, then the add notification will appear to come from the application. Add notifications sent on behalf of a user can only be sent to the sender's friends.
| Parameter | Description | Type | Required |
|---|---|---|---|
from |
The ID of the user doing the adding. | string |
no |
If the action is successful, the response will contain true.
Users can be removed from a group by issuing a DELETE request to GROUP_ID/members/USER_ID with an app access_token.
If the action is successful, the response will contain true.
A member of a group can be promoted to admin by issuing a POST request to /GROUP_ID/admins/USER_ID with an app access_token. The user must be a member of the group. The user will receive a notification that they have been made an admin for the group.
If the action is successful, the response will contain true.
A member of a group can be promoted to admin by issuing a DELETE request to /GROUP_ID/admins/USER_ID with an app access_token.
If the action is successful, the response will contain true.
Policy: When posting to a group there must be explicit messaging in the UI which communicates that user's content can be accessed by members of the group and is not restricted by their app privacy level.
Users can post a link on the Group's wall by issuing an HTTP POST request to /GROUP_ID/feed with the publish_actions permissions and the following parameters. This requires a user access_token.
| Parameter | Description | Type | Required |
|---|---|---|---|
message |
Post message | string |
either message or link |
link |
Post URL | string |
either message or link |
picture |
Post thumbnail image (can only be used if link is specified) |
string |
no |
name |
Post name (can only be used if link is specified) |
string |
no |
caption |
Post caption (can only be used if link is specified) |
string |
no |
description |
Post description (can only be used if link is specified) |
string |
no |
If the create is successful, the response will contain:
| Name | Description | Type |
|---|---|---|
id |
The new post ID | string |
Users can post a photo to the Group feed by issuing an HTTP POST request to /GROUP_ID/photos with the following parameters. This requires a user access_token. Read more about the photos api.
| Parameter | Description | Type | Required |
|---|---|---|---|
image |
Photo to be shared. | file contents |
yes |
message |
Post message | string |
no |
tags |
Tagged users and their positions in the photo. This must be an array of objects. Each object must have: `x` coordinate (percentage from left), `y` coordinate (percentage from top) and `tag_uid` for the tagged user. | array |
no |
If the create is successful, the response will contain:
| Name | Description | Type |
|---|---|---|
id |
The ID of the photo | string |
post_id |
The ID of the post | string |
Applications can set the cover photo for a group by issuing a POST request to /GROUP_ID with an app access_token.
| Name | Description | Type | Required |
|---|---|---|---|
cover_url |
The url for the cover photo. The image will be downloaded and added to the group's album and then used as a cover photo. | string |
yes |
If the action is successful, the response will contain true.
Applications can get events for a group by issuing a GET request to /GROUP_ID/events with a user access_token.
If the action is successful, the response will contain:
| Name | Description | Type |
|---|---|---|
id |
The id of the event. | string |
name |
The name of the event | string |
start_time |
Start time of the event in ISO-8601 format. | string
|
end_time |
End time of the event in ISO-8601 format. | string
|
location |
Location of the event. | string |
Users can create an event for a group by issuing a POST request to /GROUP_ID/events with a user access_token. The user needs the create_event permission.
All event times are ISO-8601 formatted strings (e.g., '2012-07-04', '2012-07-04T19:00:00-0700'). Event times containing the time must have the UTC offset.
| Parameter | Description | Type | Required |
|---|---|---|---|
name |
Name of event. | string |
yes |
start_time |
Start time of the event in ISO-8601 format. | string |
yes |
end_time |
End time of the event in ISO-8601 format. | string |
no |
description |
Description of the event. | string |
no |
location |
Location of the event. | string |
no |
location_id |
Facebook Place ID of the place for the event. | string |
no |
If the create is successful, the response will contain:
| Name | Description | Type |
|---|---|---|
id |
The new event ID | string |
To learn about other ways to drive distribution for your Game please refer to the Games distribution doc.