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

时间:2014-11-20 08:04:31

标签: php facebook facebook-graph-api facebook-php-sdk

我正在努力解决一个问题。

我必须向Facebook用户发送通知。根据> = 2.0版本的Graph API,我们获得用户的应用范围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;

响应:

如果使用app-scoped用户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);

2 个答案:

答案 0 :(得分:0)

目前,您可以在应用中同时使用全局ID和应用范围ID。 Facebook似乎放宽了这一限制。

如果您的应用范围ID无效,请提交错误。

答案 1 :(得分:0)

我正在做同样的事情,它也适用于真正的用户ID,但是当我使用app scoped id时,我收到此错误:

(#803) Some of the aliases you requested do not exist: ...