Facebook 无法发送自动通知?

Facebook 无法发送自动通知?,facebook,notifications,send,sendmessage,Facebook,Notifications,Send,Sendmessage,我正在编写一个应用程序,我可以让我的代码向验证我的应用程序的用户发送通知 只要我在浏览器中打开php页面,它就会向用户发送通知。这就像一个符咒,直到我试图让代码在用户不发起通知的情况下发送通知为止 我总是在代币上遇到麻烦,就是无法让它工作。我已经尝试将access令牌保存到数据库中,并让代码使用这些令牌,但没有效果。然后我尝试将这些代币换成长寿命的代币,一切正常,我得到的代币有效期为60天,但当我尝试使用这些代币时,它就是不起作用 有没有人有过让应用程序发送通知或消息的经验?我这里没有主意了 编

我正在编写一个应用程序,我可以让我的代码向验证我的应用程序的用户发送通知

只要我在浏览器中打开php页面,它就会向用户发送通知。这就像一个符咒,直到我试图让代码在用户不发起通知的情况下发送通知为止

我总是在代币上遇到麻烦,就是无法让它工作。我已经尝试将access令牌保存到数据库中,并让代码使用这些令牌,但没有效果。然后我尝试将这些代币换成长寿命的代币,一切正常,我得到的代币有效期为60天,但当我尝试使用这些代币时,它就是不起作用

有没有人有过让应用程序发送通知或消息的经验?我这里没有主意了

编辑 我将详细阐述一下我是如何做事的,以及什么是有效的,什么是无效的: 我将php sdk用于大多数事情,比如初始化应用程序:

  require_once("facebook.php");

  $config = array();
  $config['appId'] = 'xxxx';
  $config['secret'] = 'xxxx';
  $config['fileUpload'] = false; // optional

  $facebook = new Facebook($config);

$user_id = $facebook->getUser();
$access_token = $facebook->getAccessToken();
然后我检查用户是否已登录,如果未登录,请将其发送到登录页面等:

if($user_id) {
 try {
  $user_profile = $facebook->api('/me?fields=friends.fields(picture,name,gender,link),name','GET');
  } catch(FacebookApiException $e) {
  $login_url = $facebook->getLoginUrl(); 
  header( $login_url ) ;
 }   
} else {
 $login_url = $facebook->getLoginUrl();
 header( $login_url ) ;
}
然后,我的应用程序绘制html等,工作良好。 在代码末尾,我将用户acces_令牌交换为长寿命令牌:

$existingtoken = $access_token;
$token_url =    "https://graph.facebook.com/oauth/access_token?" .
                "client_id=" . $config['appId'] .
                "&client_secret=" . $config['secret'] .
                "&grant_type=fb_exchange_token" .
                "&fb_exchange_token=" . $existingtoken;

$new_app_token = file_get_contents($token_url);
$new_app_token = str_replace("access_token=", "", $new_app_token);

$NewToken = str_replace("&expires=", "", $new_app_token);

$mystring = $new_app_token;
$findme   = '&expires=';
$pos = strpos($mystring, $findme);
// check if the token actually is long-lived and has the expires data
if ($pos === false) {                                                       
    echo "Error getting long lived token.<br>";
} else {
$expirationtime = substr($mystring, ((int)$pos+9));
}
编辑2:
事实上,我现在已经可以使用了:)

我还没有使用过发送通知,但是如果您遇到访问令牌的问题,请务必告诉我们您遇到的错误,并向我们展示您的代码。我们可以提供帮助。如果您现在可以使用它,您可以在这里添加一个解释问题所在的答案,或者删除该问题吗?事实上,这对于遇到这个问题的其他人来说是没有用的
$notificationdata = array(
    'href'=> 'https://apps.facebook.com/MY_APP/',
    'access_token'=> $app_token,
    'template'=> '180 char string as information'
);
$sendnotification = $facebook->api('/' . $user_id . '/notifications', 'post', $notificationdata);