带有用户 ID (@[user_id]) 的 Facebook 应用程序通知模板不起作用
Facebook app notification template with user id ( @[user_id] ) not working
我无法使用@[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
returns 'false'
$friendId
是有效的应用程序用户并且
$app_token
是 "appid|appsecret"
如果我用 "test" 之类的简单消息替换 'template',一切正常
有什么想法吗?
您可能使用了错误的用户 ID。为了确保您为您的朋友使用了适当的 ID,请使用 me/friends 和您应用程序的有效用户访问令牌,并检查该 ID 是否在列表中以及它是普通用户 ID 还是应用程序作用域 ID。
另请确保您的应用不在 "Developer Mode" 中,如果是,您需要将您的用户添加为测试人员或开发人员,以便测试您的应用。
几分钟前我已经测试过了,效果很好。
作为一个不相关的问题,使用 Facebook 的 PHP SDK 不是更容易吗?
希望对您有所帮助。
编辑:应用范围内的用户 ID
Facebook 在 2014 年 4 月引入了版本控制。在 Facebook API V2 中,我们引入了 App Scoped User ID,您可以在这里阅读更多相关信息:https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids
基本上,如果您的 FB 应用程序是在 2014 年 4 月之后创建的,您将收到每个用户的唯一 ID,该 ID 只能由您的应用程序使用。您必须使用这个新的 App Scoped 用户 ID 而不是普通的 Facebook 用户 ID。
我无法使用@[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
returns 'false'
$friendId
是有效的应用程序用户并且
$app_token
是 "appid|appsecret"
如果我用 "test" 之类的简单消息替换 'template',一切正常
有什么想法吗?
您可能使用了错误的用户 ID。为了确保您为您的朋友使用了适当的 ID,请使用 me/friends 和您应用程序的有效用户访问令牌,并检查该 ID 是否在列表中以及它是普通用户 ID 还是应用程序作用域 ID。
另请确保您的应用不在 "Developer Mode" 中,如果是,您需要将您的用户添加为测试人员或开发人员,以便测试您的应用。
几分钟前我已经测试过了,效果很好。
作为一个不相关的问题,使用 Facebook 的 PHP SDK 不是更容易吗?
希望对您有所帮助。
编辑:应用范围内的用户 ID
Facebook 在 2014 年 4 月引入了版本控制。在 Facebook API V2 中,我们引入了 App Scoped User ID,您可以在这里阅读更多相关信息:https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids
基本上,如果您的 FB 应用程序是在 2014 年 4 月之后创建的,您将收到每个用户的唯一 ID,该 ID 只能由您的应用程序使用。您必须使用这个新的 App Scoped 用户 ID 而不是普通的 Facebook 用户 ID。