我正在为一个问题而苦苦挣扎。
我必须向Facebook用户发送通知。根据图形 API 的>=2.0 版本,我们获取用户的应用范围 ID,而不是原始 UID。
我的问题是:我们是否可以使用这些新的应用范围 ID 向用户发送通知?
当我尝试使用应用范围的 ID 发送通知时,代码失败。但是当我尝试使用原始用户ID相同的代码时,它起作用了。
如果有任何方法可以解决此问题,请告诉我。
提前谢谢。
这是我的代码:
require_once "/facebook_api/facebook.php";
$facebook = new Facebook();
$app_id = '<app_id>';
$app_secret = '<secret_id>';
$app_access_token = $app_id . '|' . $app_secret;
$id = '<app-scoped-id>'
$response = $facebook->api( '/'. $id .'/notifications', 'POST', array(
'template' => 'You have received a new message.',
'href' => 'http://test.com',
'access_token' => $app_access_token
));
print_r($response);
die;
响应:
如果是使用应用范围的用户 ID,则响应为:
PHP Warning: Missing argument 1 for Facebook::__construct(), called in /facebook/message.php on line 4 and defined in /facebook/facebook_api/facebook.php on line 47
PHP Notice: Undefined variable: config in /facebook_api/facebook.php on line 51
PHP Fatal error: Uncaught GraphMethodException: Unsupported post request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api
在第 1283 行放入/facebook/facebook_api/base_facebook.php
如果我使用原始用户 ID,结果是:Array(['success']=>1);
目前,可以在应用中同时使用全局 ID 和应用范围的 ID。 Facebook似乎已经放宽了这一限制。
如果应用范围的 ID 不起作用,请提交 bug。
我正在做同样的事情,它也适用于真实的用户ID,但是当我使用应用程序范围的id时,我收到此错误:
(#803) Some of the aliases you requested do not exist: ...