我们可以使用应用范围的用户 ID 发送 Facebook 通知吗?


can we send Facebook Notifications using app scoped user ids?

我正在为一个问题而苦苦挣扎。

我必须向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: ...