開発ブログでpublish_streamとpublish_actionsパーミッションの統合が告知されていたので、共有します。
以下、その内容です。

------------------------------------------------------------------------------------------------------------

Open Grpahをローンチすることで、アクティビティをFacebookに投稿する新しい方法とパーミッション(publish_actions)を提供しました。このパーミッションはpublish_streamと同様、ユーザの代理としてFacebook投稿するものですが、ユーザから見た主な違いは投稿内容の説明を承認ダイアログで表示することです。


これら二つのパーミッションは別個のものなので、開発者は同じようなパーミッションを2度求める必要があり、ユーザ体験もデベロッパ体験も貧弱なものになってしまいました。たとえば、ユーザは画像アプリに対してpublish_streamを与えてタイムラインに画像を投稿するなどです。この画像アプリがオープングラフに対応していれば、ユーザは同じことをする為にpublish_actionsも許可する必要がありました。


ユーザ体験を向上させるため、これら二つのパーミッションを一つに統合し、一つのパーミッションを求めるだけでFacebook投稿できるようにします。


attachment


許可時に説明を表示するだけでなく、publish_actionsはpublish_streamパーミッションの基本的な内容(ユーザの代理としてタイムラインに投稿する、画像やビデオを投稿する、コンテンツに対していいね!やコメントをする)を含むようになります。この変更により、publish_streamを求めていたアプリはpublish_actionsを求める必要は無くなります。ユーザ体験はシンプルになり、開発者もOpen Graphへの移行が簡単になるでしょう。


この変更以降はpublish_actionsを使うことをお勧めします。ユーザの友達のタイムラインに投稿したり、グループに対して投稿する場合には、引き続きpublish_streamパーミッションを用いてください。これは認証ダイアログの二つ目のページに表示され、ユーザはパーミッションを与えるか選択できるようになります。多くのパーミッション(とくにpublish_streamのようにダイアログの2ページ目を必要とするもの)を求めるほど、ユーザが許可する割合が減ってくる傾向にあることが分かっています。最初はアプリに最低限必要なパーミッションのみを取得し、ソーシャル体験を提供する上で必要に応じて他のパーミッションも求めてください。


この変更によってユーザのコントロールが影響を受けることはありません。Facebook上でどのコンテンツが共有されるかを明確に伝えるのは、今後もアプリ側の責任となります。今回の変更に合わせて規約を更新し、「ユーザが投稿パーミッションを与えた場合、ユーザの代理で投稿されるアクションはユーザが期待しているものと一致していなくてはならない」というものになりました。これに反しないよう、アプリの実装もアップデートしてください。

詳細についてはドキュメント規約をご覧下さい。