我正在努力解决一个问题。
我必须向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);
答案 0 :(得分:0)
目前,您可以在应用中同时使用全局ID和应用范围ID。 Facebook似乎放宽了这一限制。
如果您的应用范围ID无效,请提交错误。
答案 1 :(得分:0)
我正在做同样的事情,它也适用于真正的用户ID,但是当我使用app scoped id时,我收到此错误:
(#803) Some of the aliases you requested do not exist: ...