我无法使用以下方式使用@ [user_id]模板:
$userid = <USER_ID>;
$friendId = <FRIEND_ID>; // This is a user who has accepted the app
$url = "https://graph.facebook.com/$userid/notifications";
$attachment = array(
'access_token' => "$app_token",
'href' => "",
'template' => "@[" . $friendId . "] accepted challenge!"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
//curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
curl_close ($ch);
$result
返回'false'
$friendId
是有效的应用用户和
$app_token
是“appid | appsecret”
如果我用一个简单的消息(例如“test”)替换'template',那么一切正常
有什么想法吗?
答案 0 :(得分:2)
您可能使用了错误的用户ID。为了确保您为朋友使用适当的ID,请使用我/朋友为您的应用程序提供有效的用户访问令牌,并检查该ID是否在列表中,以及它是普通用户ID还是应用范围ID
还请确保您的应用程序未处于“开发者模式”,如果是这样,您需要将您的用户添加为测试人员或开发人员,以便您可以测试您的应用程序。
我在几分钟前测试过它并且效果很好。
作为一个无关的问题,使用Facebook的PHP SDK会不会更容易?
我希望它有所帮助。
编辑:应用程序用户ID
Facebook于2014年4月推出版本控制。在Facebook API V2中,我们推出了App Scoped用户ID,您可以在此处阅读更多相关信息:https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids
基本上,如果您的FB应用程序是在2014年4月之后创建的,那么您将收到每个用户只能由您的应用程序使用的唯一ID。您必须使用此新的App Scoped用户ID,而不是普通的Facebook用户ID。