When we launched Open Graph, we introduced a new way for people to post activity to Facebook through apps and a new permission to support it: publish_actions. Similar to publish_stream, publish_actions allows apps to publish stories on a user’s behalf. The main difference to users is that we provide a description of the types of stories that can be published ("This app may post on your behalf, including videos you watched, people you liked and more").
Because these are two separate permissions, developers have been essentially asking people for the same publishing permission twice, resulting in a poor developer and user experience. For example, a user grants a photo app the publish_stream permission to post a photo from the app to their timeline. If the photo app integrates with Open Graph, the user also needs to grant publish_actions as well to achieve the same results.
To improve the experience, we are combining these publishing permissions so that apps only have to ask users once to publish on their behalf.
In addition to providing a description, publish_actions will now include basic publish_stream permissions (including posting on a user's timeline, posting photos/videos, commenting on and liking content), which will appear on the first Auth Dialog screen. With this change, apps that were previously granted publish_stream do not need to request publish_actions. This update simplifies the user experience and makes it easier for developers to migrate to Open Graph.
We recommend all apps use publish_actions following this change. If you need specific capabilities like posting to a friend's timeline or to groups, you will still need to request publish_stream, which appears on a second screen where users can also opt out. When asking for permissions, consider the user experience and impact to conversion. We have found that the more permissions you request – especially those such as publish_stream that prompt a second Auth Dialog screen – the lower your conversion rate will be. Only ask for what your app needs up front and request more permissions as needed to provide a social experience in your app.
This change does not affect user controls. It will continue to be the developer's responsibility to make it clear to the user what content will be shared back to Facebook. We have revised our policy to reflect this guidance: "If a user grants you a publishing permission, actions you take on the user’s behalf must be expected by the user and consistent with the user’s actions within your app." Please update your apps accordingly.