我正在开发一个新的Facebook应用程序,需要发送Appusers frind list应用程序邀请。
实施例, 我的朋友X登录了CityVille App, 我的朋友离线,但他发送了CityVille Invite。 我问X你发这个邀请?他说没有:)邀请从城市自动获取。 (没有fb对话框)
我该怎么做。
P.S: 我的应用程序所需权限是: 电子邮件,offline_access,publish_stream,user_photos,read_friendlists
我尝试在我的朋友列表上关注代码,但我没有发送邀请撤消错误
$app_id = $this->facebook_config['appId'];
$app_secret = $this->facebook_config['secret'];
$token_url = "https://graph.facebook.com/oauth/access_token?" .
"client_id=" . $app_id .
"&client_secret=" . $app_secret .
"&grant_type=client_credentials";
$app_access_token = file_get_contents($token_url);
$user_id = 'USERID';
$apprequest_url ="https://graph.facebook.com/" .
$user_id .
"/apprequests?message='Mesaj'" .
"&data='bisi'&" .
$app_access_token . "&method=post";
$r = file_get_contents($apprequest_url);
echo $r;
error
{
"error": {
"type": "OAuthException",
"message": "(#200) All users in param ids must have accepted TOS"
}
}
答案 0 :(得分:2)
据我了解,您要求使用或邀请用户访问应用程序,而不是在应用程序中执行某些操作。 AFAIK是唯一可以通过电子邮件发送的方法。 Facebook只是不允许这样,除了默认的Facebook邀请对话框。
Facebook的API apprequests
仅在连接的用户之间发送请求,例如得到这头迷失的牛,或帮助我赢得这场战斗......等等。
更新:邀请好友加入的正确方法是使用Facebook JavaScript SDK。
FB.ui({method: 'apprequests',
message: 'Plz add this, I need you to use this app desperately!',
to: 'any-friend-id'
});
我刚测试了它,它允许我的兄弟use it。
答案 1 :(得分:0)
您获得的错误很可能是由于您使用file_get_contents
。
我建议使用curl:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apprequest_url);
$result = curl_exec($ch);
curl_close($ch);
请注意(上次我检查过)您仍然必须在发送任何应用请求/邀请之前通过某种形式的对话提示用户。在未经用户明确许可的情况下进行此操作违反了FB的指导原则。
您可以使用API资源管理器测试请求的功能:http://developers.facebook.com/tools/explorer/?method=POST&path=me%2Fapprequests