その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

Facebook の apprequests を Graph API から発行する際の制約

Facebook の apprequests とは、下記のようなダイアログから送信できる「アプリへの招待」です。



で、とある事情によりこれをダイアログを介さず下記APIから直接送りたかったのですが、


(apprequests)
https://developers.facebook.com/docs/reference/api/user/#apprequests


実行してみると、次のようなエラーが出ました。

code = 200;
message = "(#200) All users in param ids must have accepted TOS";
type = OAuthException;


調べてみたところ、Graph APIからの apprequests (アプリへの招待)は、相手が既にそのアプリのユーザーである場合のみ送信可能のようです。

You can only send app requests to users who already use the app - to send user-user requests you should use the Requests Dialog

Facebook Friend Request - Error - 'All users in param ids must have accepted TOS'

It means the $user_id user doesn't use your app - you can only send app->user requests to existing users of your app

“All users in param ids must have accepted TOS” Error


公式ドキュメントでも触れられています。

Note: POSTing to the Graph API endpoint of /USER_ID/apprequests is considered an App to User Request. App-Generated Requests do not receive notifications and get limited distribution in comparison to User to User Requests sent with the Request Dialog

apprequests

余談

requestsダイアログのドキュメントにはこのような記述もありました。

New Facebook policy, effective July 10, 2013: App requests can no longer offer a select all option or pre-select multiple recipients to receive a request.


2013年7月10日より新しいポリシーが施行され、App Requestsのダイアログにおいて全員一括選択や、あらかじめ受信者を複数選択しておくようなオプションはもう提供していないとのことです。


アプリやサイトのプレゼンス向上にあたって Facebook の重要度が高まっている昨今、このように一見便利なようでスパミーな機能は締め出される傾向にあるようです。